彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 彩世界开奖app官网 2019-12-06 22:00 的文章
当前位置: 彩世界开奖app官网 > 彩世界开奖app官网 > 正文

Shell笔记彩世界开奖app官网

Shell字符串:

  1:单引号和双引号差异

             单引号中无法出现单引号,用转义字符转义也格外,双引号能够

             单引号中不可能冒出变量,双引号能够

       2:拼接字符串

             $aa$bb

       3.获得字符串长度

             str=“asfgsdfg”

      echo ${#str}   会输出字符串长度

       4.领到字符串

             echo ${str:1:6}   #会输出di第2到7位

       5.查找字符串地点

              echo `expr index "$str" f`   #输出字符串f在字符串中之处

 二:参数字传送递

  1.$n        传递参数

  2.$#        传递参数个数

  3.$*        以二个字眼符串展现全数向脚本传递的参数

  4.$@     $*相仿,但是利用时加引号,并在引号中回到每种参数。

  5.$$      脚本运维的一时历程ID号

       6.$!       后台运营的终极叁个经过的ID号

       7.$?     表示上一条命令的重回值

  8.$0     Shell本身的公文名

  9.$1~$n 增添到Shell的各参数值。$1是第1参数、$2是第2参数…

       

三:数组

  规则:

             1:shell只扶助生机勃勃维数组,不帮衬多维

             2:shell数组用括号括起来表示,成分之间用空格隔开分离

             my_array=(A B C D)

 输出:
     echo  “${my_array[0]}”
     获取所有数组元素:

     echo "数组的元素为: ${my_array[*]}"
     echo "数组的元素为: ${my_array[@]}"

 获取数组长度:

     echo "数组的元素为: ${#my_array[*]}"
     echo "数组的元素为: ${#my_array[@]}"

 注意事项:
     1:数组元素可以为变量

     my_array=($A B C D)

四:运算符

      shell中运算符分为6种:

  1:算术运算符

  2:关系运算符

  3:布尔运算符

  4:字符串运算符

  5:文件测量检验运算符

  详解:

  1:算术运算符

            val='exper   2 2'     #输出为4

           注意2 2之间运算符和数字之间自然要有空格,不然会按字符串输出

     彩世界开奖app官网 1

  2:关系运算符

      彩世界开奖app官网 2

  3:布尔运算符

     彩世界开奖app官网 3

  4:逻辑运算符

    彩世界开奖app官网 4

  5:字符串运算符

    彩世界开奖app官网 5

  6:文件测量检验运算符

     彩世界开奖app官网 6

break

break命令

break命令允许跳出全体循环(终止实行前面包车型客车兼具循环)。

变量使用:

     $your_name

     ${your_name}

     "My name is ${your_name}"

引入给全部变量加上花括号,那是一位好的编制程序习贯。

continue

continue命令与break命令相通,独有有个别差异,它不会跳出全部循环,仅仅跳出当前轮回。

去除变量:

    uset myurl   #那时变量已经被去除

文件测量试验运算符

文件测试运算符用于检测 Unix 文件的各种属性。
属性检测描述如下:
操作符 说明  举例
-b file 检测文件是否是块设备文件,如果是,则返回 true。  [ -b $file ] 返回 false。
-c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。    [ -f $file ] 返回 true。
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。  [ -g $file ] 返回 false。
-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。  [ -k $file ] 返回 false。
-p file 检测文件是否是有名管道,如果是,则返回 true。   [ -p $file ] 返回 false。
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。  [ -u $file ] 返回 false。
-r file 检测文件是否可读,如果是,则返回 true。  [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。  [ -w $file ] 返回 true。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file 检测文件(包括目录)是否存在,如果是,则返回 true。    [ -e $file ] 返回 true。

shell变量:

    情形变量,局地变量,shell变量    

until 循环

until condition
do
    command
done

一:变量

whileInfiniti循环
while :
do
    command
done

while true
do
    command
done

只读变量:

     myurl="my name is kenny"

     readonly  myurl

    再去给变量赋值是不可达成的

逻辑运算符

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:

运算符 说明  举例
&&  逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
||  逻辑的 OR  [[ $a -lt 100 || $b -gt 100 ]] 返回 true

命名准则:

  • 取名只好使用Slovak语字母,数字和下划线,第三个字符不能够以数字开端。
  • 中档不能够有空格,能够选择下划线(_)。
  • 不能够采纳标点符号。
  • 不能够选取bash里的重大字(可用help命令查看保留首要字)。

case语句

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
*)
    ;;
esac

二:echo

  1:展现转义字符

            echo "" myname    ""

  2:突显变量

    echo "$name It is a test"

  3:换行

          cheo "hello word  n"

  4:不换行

  echo -e "OK! c" # -e 开启转义 c 不换行
  echo "It is a test"

  5:显示结果重定向

     echo "It is a test" > myfile

跳出循环

三:流程序调控制

     if...else

if [ $exitstatus = 0 ]; then
   if [ ! $PET ]; then
   echo "you have not input a word!"
    else
        echo $PTION 
        if [ $PTION = 1 ]; then
           echo "Your ip is:" $PET
           echo -e "n#" $PET  "n0.0.0.0 10${PET} 172.17.17.${PET} 3389">>/root/aa.sh
        else  
          echo "Your ip is:" $PET
          echo -e "n#" $PET  "n0.0.0.0 10${PET} 172.17.17.${PET} 22">>/root/aa.sh
          echo -e             "0.0.0.0 20${PET} 172.17.17.${PET} 80">>/root/aa.sh
          echo -e             "0.0.0.0 30${PET} 172.17.17.${PET} 9091">>/root/aa.sh
        fi  
   fi
else
    echo "You chose Cancel."
fi

  for

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

  while

int=1
while(( $int<=5 ))
do
    echo $int
    let "int  "
done

  

     until

     case

    

case "$1" in
   -c)
        BackupControllerConfig
    ;;
   -p)
        BackupComputeConfig
    ;;
   -rc)
        RestoreControllerConfig
    ;;
   -rp)
        RestoreComputeConfig
    ;;
   -ri)
        RintedConfig
    ;;
   *)  
        Openstack_help
    exit 0
esac

  

     break

     break命令允许跳出全体循环(终止试行后边的装有循环)。

     continue

     continue命令与break命令形似,唯有好几差距,它不会跳出全体循环,仅仅跳出当前轮回。

 

其他:

   shell脚本中取妥贴前路径

$(cd `dirname $0`; pwd)

 -E代表假如出错,就淡出当前的shell。

bash -E /root/1.sh

 $? 上个命令的脱离状态,或函数的重返值。

-ne 是不等于

check_exit(){
    if [ $? -ne 0 ]; then
        echo -e "\033[41;37m[Error]: have a error \033[0m"
        exit 1
    fi
}

 解压安装包到/opt/目录下

tar -zxf ./packages/s3_bs_install.2* -C /opt/

  当前bash境遇下读取并实施FileName中的命令

source ./config/deploy-config

  允许你成立简短的前后相继,那么些程序读取输入文件、为数据排序、管理数据、对输入施行计算甚至变化报表,还应该有大多别的的职能。

       对获取的字符串举行排序排重

$(echo ${all_ips_old} | awk '{for(i =1; i <=NF; i  ){ if($i~/[0-9].[0-9]/) print $i  }}'|sort -u)

  1:export  使变量为全局变量

        2:使用加-o StrictHostKeyChecking=no参数,SSH 公钥检查是一个重要的莱芜体制,能够幸免中间人吓唬等红客攻击。可是在一定情景下,严苛的 SSH 公钥检查会破坏部分依附 SSH 契约的自动化职分,就要求生机勃勃种手腕能够绕过 SSH 的公钥检查

export autossh="ssh -i ${ssh_private_key} -o StrictHostKeyChecking=no"
#-q: 不显示传输进度条
export autoscp="scp -i ${ssh_private_key} -o StrictHostKeyChecking=no -q"

  

 

数组的操作
  • 读取数组

    ${array_name[n]}

  • 读取全部因素

    ${array_name[@]}

  • 获得数高管度

    echo ${#array_name[*]} or echo ${#array_name[@]}

  • 获得数组的子串

    echo ${array_name:1:4}

恍如于获取字符串的字串,下面的demo获取从第1个开首的累积4个因素

while循环

while condition
do
    command
done

if elseif else

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi
字符串的操作
  • 赢得字符串的尺寸

    str="abce"

    echo ${#str}

  • 领到子字符串

    str="this is a string"

    echo ${str:1:4}

地点demo从第贰个字符开首截取豆蔻梢头共4个字符

Shell 传递参数

咱俩在实行Shell脚本的时候,往往会传递一些参数,获取这个参数的和应用变量的艺术周边,使用$n,n=1,2,3...意味首先二三个参数,$0 代表推行的文书名

t.sh文件

echo "文件名为:${0}"
echo $1
echo ${2}
echo ${3}

传送参数的主意为,执行

sh ./t.sh value1 value2

上边demo未有第多个参数,会打字与印刷空

生机勃勃部分特其余参数

参数处理    说明

$#  传递到脚本的参数个数

$*  以一个单字符串显示所有向脚本传递的参数。

如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。

$$  脚本运行的当前进程ID号

$!  后台运行的最后一个进程的ID号

$@  与$*相同,但是使用时加引号,并在引号中返回每个参数。

如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

$-  显示Shell使用的当前选项,与set命令功能相同。

$?  显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

Shell脚本运转要求可实行权限,所以要使用chmod命令来予以可施行权限

chomd u x t.sh

字符运算符

运算符 说明  举例
=   检测两个字符串是否相等,相等返回 true。  [ $a = $b ] 返回 false。
!=  检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z  检测字符串长度是否为0,为0返回 true。  [ -z $a ] 返回 false。
-n  检测字符串长度是否为0,不为0返回 true。 [ -n $a ] 返回 true。
str 检测字符串是否为空,不为空返回 true。   [ $a ] 返回 true。

概念变量

概念变量直接 变量名=值

注意

  1. =号左右无法有空格,不然以为变量名称为shell命令
  2. 值可感觉随便等级次序,想写什么就写什么,而且在背后能够随便改动项目

删除变量

去除变量 使用unset定义变量就可以

name="jay"
unset name  

运用注释

shell中的注释为# Shell中尚无多行注释

数组

利用(卡塔尔国括号来标记数组,数组成分运用"空格"分割开。只协理后生可畏维数组,不援助多维数组,近似于C语言,数组成分的下标由0开首

array_name=(value0 value1 value2)

也足以采取回车

aray_name=(
value0
value1
value2
)

还足以单独定义每二个轻重

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

能够不行使三回九转的下标,并且上边没有节制界定

字符串

接纳变量

运用变量供给用$标志

name="corbin"
echo $name

也足以采纳{}包围(推荐)

name="corbin"
echo ${name}    
字符串 单引号标记

str='this is a string'

单引号字符串的节制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是低效的;

  • 单引号字串中不能够现身单引号(对单引号使用转义符后也分外)。

for循环

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

Shell笔记

Shell 函数

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

概念二个包蕴return语句的函数:

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum $anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

带参数的函数示例

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

流程序调整制

Shell 基本运算符

不扶持轻便的数学生运动算,要求使用命令来计算,eg:awk和expr.

五个数相加(使用的是反引号`)

val=`expr 2   2`
echo "2 2=${val}"

注意

  • 表明式和平运动算符之间要求空格,比方2 2是非常的,必得为2 2

  • 表明式需求被``(反引号)包含

    运算符 说明 举例

    加法 expr $a $b

    - 减法 expr $a - $b

    * 乘法 expr $a * $b

    / 除法 expr $b / $a

    % 取余 expr $b % $a

    = 赋值 a=$b 将把变量 b 的值赋给 a。

    == 相等。用于比较七个变量,相近则赶回 true。如[ $a == $b ]

    != 不等于。用于比较三个变量,不相符则赶回 true。如[ $a != $b ]

注意:原则表明式要放在方括号之间,况且要有空格,例如: [$a==$b] 是错误的,必需写成 [ $a == $b ]。

a=1
b='1'
if [ $a == $b ]
then
    echo "a = b"
else
    echo "a != b"
fi
输出为:a = b

[]与[[]]的区别

[]实际是bash 中 test 命令的简写。即全体的 [ expr ] 等于 test expr
对 test 命令来讲, 用 -eq 要举行数字相比.

[[ expr ]] 是bash中确实的规格推断语句,其语法更符合编制程序习贯 (比方&&, || 的用法),在 [[ ]] 中的,任何索要整数,然则提供真正又是其余不可能转变来整数的字符串,都成为了0。 所以应该保障自身代码中的供给用到整数的时候,总是提供整数。

变量的选用

只读变量

只读变量 使用readonly定义变量就可以

name="jay"
readonly name

Shell中的变量

字符串 双引号标志

str=“this is a string”

双引号的独到之处:

  • 双引号里能够有变量

  • 双引号里能够现身转义字符

别的变量

Shell中还可能有整数,浮点数等,可是并未有其它语言里面包车型地铁布尔值

本文由彩世界开奖app官网发布于彩世界开奖app官网,转载请注明出处:Shell笔记彩世界开奖app官网

关键词: 日记本