您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页shell脚本基本语法

shell脚本基本语法

来源:飒榕旅游知识分享网
shell脚本基本语法

⾃定义变量 定义变量

变量名=变量值 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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务