Shell 备忘

原创
2017/01/30 18:42
阅读数 76

Shell 备忘

  • $# 传递到脚本的参数的个数
  • $* 以一个单字符串显示所有向脚本传递的参数,即是将参数当成一个字符串显示
  • $$ 脚本运行的当前进程ID 号
  • $! 后台运行的最后一个进程ID 号

1. Shell 数组

bash shell 只支持一维数组,不支持多维数组,语法格式如下:
array_name=(values1 values2 ... values)
读取数组如下:

${array_name[index]}  
echo "数组的元素为:"${array_name[*]}         # 显示所有的元素,下同  
echo "数组的元素为:"${array_name[@]}  
echo "数组的长度为:" ${#array_name[@]}    #获取数组的长度  

2. 运算符

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

val=`expr 2 + 2`  
echo "2+2=${val}"   #注意:表达式和运算符之间要有空格,不然会原样输出  
echo `expr 2 \* 2`  
echo `expr 2 / 2`  

3. test 命令

Shell 中的 test 命令用于检查某个条件是否成立,它可以进行数值,字符和文件三个方面的测试
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真

num1=100  
num2=200  
if test ${num1} -eq ${num2}  
    then  
    #do code  
else  
    #do others  
fi

= 等于则为真
!= 不相等则为真
-z 字符串 字符串的长度为0则为真
-n 字符串 字符串的长度不为0则为真

str1="my name is rola"  
str2="my name is ming"  
if test ${str1} = ${str2}  
    then  
    #do code  
else  
    #do others  
fi

-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读为真
-w 文件名 如果文件存在且可写为真
-x 文件名 如果文件存在且可执行为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真

if test -e ./bash  
then  
    #do code  
else  
    #do others  
fi

4. 流程控制

if

if condition  
then  
#code
fi  
########################################################  
if condition  
then  
#code  
else  
#code
fi  
########################################################  
if condition  
then  
#code  
elif condition  
then  
#code  
else  
#code  
fi  

for 循环

for var in list  
do  
    #code  
done  
##################################################  
while condition  
do  
    #code  
done  

case

case 值 in  
model 1)  
        # code  
        ;;  
model 2)  
        # code  
       ;;  
esac  
#demo  
read num  
case $num in  
    1) echo  '你选择了 1'  
    ;;  
    2) echo '你选择了 2'  
    ;;  
    3) echo '你选择了 3'  
    ;;  
    4) echo '你选择了 4'  
    ;;  
    *) echo '没有选择 '  
    ;;  
esac  
#  在 case 中,用 **;;**  表示 break  

5. 函数

[function] funname [()]  
{  
    action;
    [return]
}  
# [] 为可选,如果没有return,默认以最后一条语句作为返回值

文件引入或者包含

. filename  #注意前面有个点号  
source filename  
展开阅读全文
打赏
0
1 收藏
分享
加载中
非常实用和常用。感谢。
2017/01/30 18:54
回复
举报
更多评论
打赏
1 评论
1 收藏
0
分享
返回顶部
顶部