今天就跟大家聊聊有关shell语法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
rz="hufei" # 定义静态变量 date=`date` # 赋值,动态变量 echo $rz # hufei echo '$rz' # '$rz' 不能用 echo "$rz" # hufei echo "'$rz'" # 'hufei' echo '"$rz"' #'$rz' 不能用 echo `$rz` # 报错 echo $date echo ${rz}addword # 变量拼接 总结: 字符串带上双引号,变量引用不要用单引号
#!/bin/bash # 生产中不一定是这一行 echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; echo "个数:$#" # 参数个数 echo "传递参数作为一个字符:$*" #将所有参数拼为一个字符串 echo "PID: $$" # shell进程pid,防止误kill ./test.sh 1 2 3
执行时加上 -x 或者 #!/bin/bash -x
arr=(hello world jike make you) echo ${arr} # 默认第一个 echo ${arr[*]} # 所有的,按空格分开 echo ${arr[4]} # 第四个 echo ${#arr[*]} # 数组个数
方式1
if condition1 then command1 elif condition2 then command2 else commandN fi
方式2(命令形式)
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
a="abc" b="abc" c=3 # string if [ $a == $b ] then echo "a equal b" else echo "a no equal b" fi # num if [ $c == $b ];then echo "c equal b";else echo "c not equal b";fi # 判断文件是否存在 dir="/data/" file="/data/file" if [ ! -d $dir ];then echo "${dir}不存在";else echo "${dir}已存在";fi if [ ! -f $file ];then echo "${file}不存在";else echo "${file}已存在";fi 参数说明: -d 判断对象是否存在,并且为目录 -f 判断对象是否存在,并且为常规文件 -s 判断对象是否存在,并且长度不为0 -nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
方式1
for var in item1 item2 ... itemN do command1 command2 ... commandN done
for str in 'This is a string' do echo $str done
方式2
for var in item1 item2 ... itemN; do command1; command2… done;
s="hello,world,hadoop,jike,ou" # 方法1 OLD_IFS="$IFS" IFS="," arr=($s) IFS="$OLD_IFS" for x in ${arr[*]} do echo $x done # 方法2 arr2=(${s//,/ }) for x in ${arr2[*]} do echo $x done
while condition do command done
#!/bin/bash int=1 while(( $int<=5 )) do echo $int let "int++" done
case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
echo '输入 1 到 4 之间的数字:' echo '你输入的数字为:' read aNum case $aNum in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '你没有输入 1 到 4 之间的数字' ;; esac
示例1(无返回值)
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com demoFun(){ echo "这是我的第一个 shell 函数!" } echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----"
示例2(有返回值)
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn echo "输入的两个数字之和为 $? !"
示例3(接收参数)
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com 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
包含文件可以用于封装公共文件
. filename # 注意点号(.)和文件名中间有一空格 或 source filename
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com #使用 . 号来引用test1.sh 文件 . ./test1.sh # 或者使用以下包含文件代码 # source ./test1.sh echo "菜鸟教程官网地址:$url"
看完上述内容,你们对shell语法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。