Shell脚本

  1. Shell脚本第一行必须是 #!/bin/bash            
  2. 符号#!用来告诉系统执行该脚本的程序(如果使用tc shell改为tcsh)。
  3. 使用chmod命令将脚本文件权限改为可执行:chmod +x  shellfilename
  4. 在进行shell编程时,以 # 开头的句子表示注释
  5. 所有的变量都由字符串组成,并且不需要对变量进行声明
  6. 首个字符必须为字母(a-z,A-Z)
  7. 中间不能有空格,可以使用下划线(_)
  8. 不能使用标点符号
  9. 不能使用bash里的关键字
  10. 要取用一个变量的值,只需在变量名前面加一个$
  11. 给变量赋值的时候,不能在”=”两边留空格
  12. first="hello "
  13. echo “${first}world”  #混淆
  14. shell的默认赋值是字符串赋值
  15. let   表示数学运算
  16. $[]   表示将中括号内的表达式作为数学运算先计算结果再输出 如:_tot=$[$_int+89]
  17. expr   用于整数值运算,每一项用空格隔开 如:_tot='expr $var + 20'
  18. expr 运算符两侧都必须有空格
  19. C shell不支持浮点运算符

 if语句:

  if [ 条件 ]; then 语句

elif [ 条件 ];then 语句

else 语句

fi

[]比较的时候其括号前后的空格别忘了! = 等号前后也要有空格也要注意

例子:

#!/bin/sh 
varOne=1 
varTwo=2 
varThree=3 
if [ "$varOne" = "$varTwo" ]; then 
    echo "varTwo:$varTwo" 
elif [ "$varOne" = "$varThree" ]; then 
    echo "varThree:$varThree" 
else 
    echo "varOne:$varOne" 
fi 

&& 和 || 操作符:

例子:

#!/bin/sh 
varOne=1 
varTwo=2 
varThree=3 
if [ "$varOne" = "$varThree" ] || [ "$varOne" = "$varTwo" ]; then 
    echo "|| 进入" 
else 
    echo "No || 进入" 
fi 
if [ "$varOne" = "$varOne" ] && [ "$varOne" = "$varTwo" ]; then 
    echo "&& 进入" 
else 
    echo "No && 进入" 
fi 

case 语句:

 case表达式可以用来匹配一个给定的字符串,而不是数字

#!/bin/sh 
  
ftype=`file "$1"`   # Note ' and ` is different 
case "$ftype" in 
"$1: Zip archive"*) 
unzip "$1" ;; 
"$1: gzip compressed"*) 
gunzip "$1" ;; 
"$1: bzip2 compressed"*) 
bunzip2 "$1" ;; 
*) echo "File $1 can not be uncompressed with smartzip";; 
esac 

 特殊变量$1,该变量包含有传递给该脚本的第一个参数值,也就是说,$1 就是字符串 articles.zip

 select 语句:

select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择

#!/bin/sh 
  
echo "What is your favourite OS?" 
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do 
  break; 
done 
echo "You have selected $var" 

 while/for 循环:

#!/bin/sh 
varOne=1 
varTwo=1 
  
# while 
while [ "$varOne" = "$varOne" ]; do 
    echo "while Done" 
    break 
done 
  
#  for 
for varStr in H I M I ; do 
    echo "varStr is $varStr" 
done

 输出

while Done 
varStr is H 
varStr is I 
varStr is M 
varStr is I 
localhost:Desktop Himi$ 

函数:

函数名()
{
    #$1代表第一个函数参数  $2代表第二个函数参数.....
    exit 0
}
函数名

 脚本调试:

最简单的调试方法当然是使用echo命令。你可以在任何怀疑出错的地方用echo打印变量值,这也是大部分shell程序员花费80%的时间用于调试的原因。Shell脚本的好处在于无需重新编译,而插入一个echo命令也不需要多少时间。shell也有一个真正的调试模式,如果脚本”strangescript”出错,可以使用如下命令进行调试:

 sh -x strangescript

上述命令会执行该脚本,同时显示所有变量的值。shell还有一个不执行脚本只检查语法的模式,命令如下:

sh -n your_script    

OK,本章主要是为了熟悉一些控制语句和常用知识点,那么到这对于Shell编程基础学习认识就算告一段落,如有必要以后会继续深入学习;暂时足以;

本文内容参考了http://xiaominghimi.blog.51cto.com/2614927/908879

 

 

原文地址:https://www.cnblogs.com/zhouchanwen/p/2780235.html