⾃定义变量 定义变量
变量名=变量值 num=10 引⽤变量 $变量名
如:i=$num 把变量num的值赋给i 显⽰变量
使⽤echo命令可以显⽰单个变量取值 echo $num 清除变量
使⽤unset命令清除变量 unset varname
变量的其他⽤法 read string
从键盘输⼊⼀个字符串付给变量string,若string没定义则先定义再使⽤ readonly var=100
定义⼀个只读变量,只能在定义时初始化,以后不能改变,不能被清除。 export var=300
使⽤export说明的变量,会被导出为环境变量,其它shell均可使⽤ 注意:此时必须使⽤source 2_var.sh才可以⽣效或者 \".空格\"
注意事项:
等号两边不能直接接空格符,若变量中本⾝就包含了空格,则整个字符串都要⽤双引号、或单引号括起来;双引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为⼀般字符。 例:name=\"aa bb\"
echo \"$name is me\" //输出:aa bb is me echo '$name is me' //输出:$name is me
环境变量 定义:
⼀般在~/.bashrc或/etc/profile⽂件中(系统⾃动调⽤的脚本)使⽤export设置,允许⽤户后来更改。VARNAME = value; export VARNAME 显⽰环境变量
使⽤env命令可以查看所有的环境变量。 清除环境变量
使⽤unset命令清除变量常见环境变量:
HOME:⽤于保存注册⽬录的完全路径名。
PATH:⽤于保存⽤冒号分隔的⽬录路径名,存放含有可执⾏⽂件的⽬录 HOSTNAME:主机名 ......
预定义变量:
$#:传给shell脚本参数的数量 $*:传给shell脚本参数的内容
$1、$2、$3、...、$9:运⾏脚本时传递给其的参数,⽤空格隔开 $?: 命令执⾏后返回的状态
\"$?\"⽤于检查上⼀个命令执⾏是否正确(在Linux中,命令退出状态为0表⽰该命令正确执⾏ ,任何⾮0值表⽰命令出错). $0:当前执⾏的进程名 $$:当前执⾏的进程号
\"$$\"变量最常见的⽤途是⽤作临时⽂件的名字,以保证临时⽂件不会重复.
脚本变量的特殊⽤法: \"\" `` '' \\ () {} \"\" (双引号): 包含的变量会被解释
'' (单引号): 包含的变量会当做字符串解释
`` (反引号): 反引号中的内容作为系统命令,并执⾏其内容,可以替换输出为⼀个变量 \\ 转义字符:
同c语⾔ \\n \ \\r \\a等 echo命令需加-e转义 (命令序列):
由⼦shell来完成,不影响当前shell中的变量 {命令序列}:
在当前shell中执⾏,会影响当前变量
条件测试
test命令有两种格式:
test condition 或 [ condition ] shell脚本中的条件测试如下
⽂件测试、字符测试、数字测试、复合测试
⽂件测试
-e是否存在 -d是否⽬录 -f是否⽂件 -r可读 -w可写 -x可执⾏
-L符号链接 -c是否字符设备 -b是否块设备 -s⽂件⾮空
字符串测试:
test str_operator \"str\"
test \"str1\" str_operator \"test2\" [ str_operator \"str\" ]
[ \"str1\" str_operator \"str2\" ] 其中str_operator可以是
= 两个字符串相等 != 两个字符串不相等 -z 是不是空串 -n 是不是⾮空串
测试数值格式如下:
test num1 num_operator num2 [ num1 num_operator num2 ] num_operator可以是: -eq 数值相等 -ne 数值不相等 -gt 数1⼤于数2
-ge 数1⼤于等于数2 -le 数1⼩于等于数2 -lt 数1⼩于数2
控制结构:
if [ 条件1 ]; then 执⾏第⼀段程序 elif [ 条件2 ]; then 执⾏第⼆段程序 else
执⾏第三段程序 fi
----------------------------------------------------------------------------
case $变量名称 in \"第⼀个变量内容\" ) 程序段1 ;;
\"第⼆个变量内容\" ) 程序段2 ;; *)
其他程序段 exit 1 esac
for (( 初始值; 值; 执⾏步阶)) do
程序段 done
初始值:变量在循环中的起始值
值:当变量值在这个范围内时,就继续进⾏循环 执⾏步阶:每作⼀次循环时,变量的变化量
declare是bash的⼀个内建命令,可以⽤来声明shell变量、设置变量的属性。declare也可以写 作typeset。
declare -i s 代表强制把s变量当做int型参数运算。
for var in con1 con2 con3 ... do
程序段 done
第⼀次循环时,$var的内容为con1 第⼆次循环时,$var的内容为con2 第三次循环时,$var的内容为con3 ......
while [ condition ] do
程序段 done
当condition成⽴的时候进⼊while循环, 直到condition不成⽴时才退出循环。
break
break命令允许跳出循环。
break通常在进⾏⼀些处理后退出循环或case语句 continue
continue命令类似于break命令
只有⼀点重要差别,它不会跳出循环,只是跳过这个循环步。 函数
定义函数的两种格式 函数名 () { 命令 }
------------------------------------------------------- function 函数名 () { 命令 }
函数可以放在同⼀个⽂件中作为⼀段代码,也可以放在只包含函数的单独⽂件中
所有函数在使⽤前必须定义,必须将函数放在脚本开始部分,直⾄shell解释器⾸次发现它时,才可以使⽤
函数调⽤格式为:
函数名 param1 param2 ... ...
使⽤参数同在⼀般脚本中使⽤特殊变量 $1,$2 ...$9⼀样
函数可以使⽤return提前结束并带回返回值
return 从函数中返回,⽤最后状态命令决定返回值 return 0 ⽆错误返回 return 1 有错误返回
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务