今天就跟大家聊聊有关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语法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/chinahufei/blog/3082884