Shell 语法

1. 变量

默认均为字符串类型

  • 字符串
name1 = zhangsan //不用引号包裹
name2 = "zhang san" //如有空格必须用引号,单双都可以
message = "hello $name2" //使用刷双引号,会解析name2的值
echo $message  //输出hello zhang san
echo \$message //输出$message
  • 参数
set nice to meet you #设置4个参数
echo $1 #输出 第一个参数 $2,$3以此类推
echo $# #输出参数个数
echo "$@" #输出参数,以空格分割
echo "$*" #输出参数,以环境变量IFS的首字符分割,默认为空字符
2. 条件

语法

if test -f a.txt  #判断a.txt是否存在,也可以写车 
#if [ -f a.txt ]  效果同上,[] =test
then
....
fi

字符串比较

string1=string2 #判断字符串相等
string1!=string2 #判断字符串不等
-z string #空子符串返回true (记忆 zero)
-n string #不为空返回true

算术比较

-eq #相等
-ne #不相等
-gt -ge #大于 大于等于
-lt -le 小于 小于等于

文件判断

-d file # 是否为文件夹
-e file #文件是否能存在,不可移植,通常使用-f
-f file #是否文件
-r -w -x #是否可读 可写 可执行

3. 控制
  • if
if condition
then
 statement
elif condition
  statement
then
  statement
fi
  • for
for number in 1 2 3 4
do
echo $number
done

exit 0
  • while
  • case
read number
case $number in
        1|3|5|7|9 ) echo "我是奇数";;
        2|4|6|8) echo "我是偶数";;

esac
exit 0
5. 函数
test(){ #函数定义
echo "hello function"
}

echo "call function"
test #直接写函数名即可调用
echo "function end"
exit 0

你可能感兴趣的:(Shell 语法)