shell脚本demo

                                           

这里只是一些简单的shell脚本的基础例子,适合入门的朋友练练手


  
  
  1. #! /bin/sh
  2. #测试echo、位置变量
  3. ls
  4. echo hello
  5. echo "\$* is $*"
  6. echo "\$@ is $@"
  7. echo "\$# is $#"
  8. date
  9. ################################
  10. #! /bin/bash
  11. #测试三种引号
  12. log=Sunday
  13. #双引号阻止shell对大多数特殊字符进行解释
  14. echo "Today is $log"
  15. #单引号阻止shell对所有字符进行解释
  16. echo 'Today is $log'
  17. #倒引号修饰的命令将会被执行,输出结果作为这个表达式的值
  18. echo "Today is `date`"
  19. #################################
  20. #! /bin/bash
  21. #shell脚本是一种“弱类型”的语言,它并不知道num中保存的是
  22. #一个数字。可以用$[]来高速shell应该对其中的表达式求值
  23. num1=1+2
  24. num2=$[1+2]
  25. echo $num1 $num2
  26. #################################
  27. #! /bin/bash
  28. #shell脚本是一种“弱类型”的语言,它并不知道num中保存的是
  29. #一个数字。可以用$[]来告诉shell应该对其中的表达式求值
  30. num1=1+2
  31. num2=$[1+2]
  32. echo $num1 $num2
  33. #也可以用let表达式,用于计算整数表达式的值
  34. let num=$num1+1
  35. echo $num
  36. #expr的命令允许的表达式更复杂,注意数字和+之间有空格
  37. expr 2 + 2
  38. ######################################
  39. #! /bin/bash
  40. #if语句,格式很重要,if后有空格,[]前后有空格,“=”前后有空格,
  41. #“;”代表一行结束,所以可以在后面写then,否则换行
  42. echo "Enter passwd"
  43. read passwd
  44. if [ "$passwd" = "mypasswd" ];then
  45.  echo "passwd is correct!"
  46. elif test "$passwd" = "miss";then
  47.  echo "passwd is missing"
  48. else
  49.  echo "passwd is wrong"
  50. fi
  51. ####################################
  52. #! /bin/bash
  53. #条件测试,测试某个程序的返回值
  54. #需要另建一个testscript文件如下
  55. # code   #! /bin/sh
  56. #        exit $@
  57. if ./testscript -1;then
  58.  echo "testscript exit #1"
  59. fi
  60. if ./testscript 0;then
  61.  echo "testscript exit 0"
  62. fi
  63. if ./testscript 1;then
  64.  echo "testscript exit 1"
  65. fi
  66. ###################################
  67. #!/bin/sh
  68. #test和[]可以互换
  69. #判断登陆shell是不是sh
  70. if test "$SHELL" = "bin/bash";then
  71.  echo "shell is /bin/bash"
  72. fi
  73. #判断是不是一个文件
  74. if [ -f $0 ];then
  75.  echo "$0 is a file"
  76. fi
  77. #判断是否可执行
  78. if [ -x "$0" ];then
  79.  echo "$0 can be x"
  80. fi
  81. #判断是否有值
  82. if [ -n $0 ];then
  83.  echo "$0 has value"
  84. fi
  85. ################################
  86. #!/bin/sh
  87. #用于数字的比较
  88. ##eq 如果相等返回真
  89. ##ne 如果不等返回真
  90. ##lt 如果前者小于后者返回真
  91. ##le 如果前者小于或等于后者返回真
  92. ##gt 如果前者大于后者返回真
  93. ##ge 如果前者大于或等于后者返回真
  94. num=5
  95. if [ $num -eq 5 ];then
  96.  echo "num=5"
  97. fi
  98. ####################################
  99. #!/bin/sh
  100. #复合表达式
  101. #!非
  102. #-a与
  103. #-o或
  104. #也可以用&&和||,这样看起来更清晰,但效率较低
  105. num1=5
  106. num2=3
  107. if [ $num1 -eq 5 -a $num2 -eq 4 ];then
  108.  echo "sucess"
  109. fi
  110. if [ $num1 -eq 5 ] && [ $num2 -eq 3 ];then
  111.  echo "sucess2"
  112. fi
  113. #####################################
  114. #! /bin/bash
  115. #和C不同,case必须有“;;”用于break,"*"代表匹配所有字符串
  116. case "$1" in
  117.  start)
  118.  echo start;;
  119.  stop)
  120.  echo stop;;
  121.  *)
  122.  echo hello;;
  123. esac
  124. ####################################
  125. #!/bin/sh
  126. #计算1到输入的count的累加
  127. while read number
  128. do
  129.  sum=0
  130.  count=1
  131.  if [ $number -gt 0 ];then
  132.   while [ $count -le $number ]
  133.   do
  134.    sum=$[$sum+$count]
  135.    count=$[$count+1]
  136.   done
  137.   echo $sum
  138.  fi
  139. done
  140. #################################
  141. #!/bin/sh
  142. #计算1到输入的100的累加
  143. #until 和while的判断条件相反
  144. sum=0
  145. count=1
  146. #until ! [ $count -le $number ]
  147. until [ $count -gt 100 ]
  148. do
  149.  sum=$[$sum+$count]
  150.  count=$[$count+1]
  151. done
  152. echo $sum
  153. ######################################
  154. #! /bin/bash
  155. #测试for
  156. echo "$# file(s) to list"
  157. for file in $@
  158. do
  159.  ls -l $file
  160. done
  161. #输出列表里的文件名
  162. for file in `ls`
  163. do
  164.  echo $file
  165. done 
  166. ################################
  167. #!/bin/sh
  168. #输出列表的数,seq工具可产生列表,要用倒引号扩起来
  169. #for i in 1 2 3 4 5
  170. for i in `seq 5`
  171. do
  172.  echo $i
  173. done 
  174. ##################################
  175. #! /bin/bash
  176. #read 语句 如果不提供变量名,那么读取的信息将存放在REPLY变量中
  177. read firt second
  178. echo $firt
  179. echo $second
  180. #read 常用来在输出一段内容后暂停,等待用户继续
  181. echo "press <ENTER> to continue"
  182. read
  183. echo "END"
  184. ####################################
  185. #! /bin/bash
  186. #exit用于强行退出一个脚本,并向调用这个脚本的进程返回一个整数
  187. #trap用于捕捉信号量,并忽视这个信号量
  188. trap 'echo "input quit to exit"' INT
  189. #提示用户输入quit退出程序
  190. while [ "$input" != 'quit' ]
  191. do
  192.  read input
  193. done
  194. exit 0
  195. ##########################################
  196. #! /bin/bash
  197. #在trap中使用了复合命令echo "Goodbye";exit
  198. #即先执行echo Goodbye显示提示信息,再exit退出脚本
  199. trap 'echo "Goodbye";exit' EXIT
  200. echo "input quit to exit"
  201. #提示用户输入quit退出程序
  202. while [ "$input" != 'quit' ]
  203. do
  204.  read input
  205. done
  206. exit 0
  207. #########################################
  208. #! /bin/bash
  209. #自己编写命令delete,用这个删除文件时,可以删除到回收站。
  210. #将编写的命令移动到/bin里面,就可以当做普通命令使用了
  211. if [ ! -d ~/.trash ];then
  212.  mkdir ~/.trash
  213. fi
  214. if [ $# = 0 ];then
  215.  echo "Usage: delete file1[file2,file3...]"
  216. else
  217.  echo "You are about to delete these files"
  218.  echo "$@"
  219.  echo -n "Are you sure to do that?[Y/n]"
  220.  read reply
  221.  if [ "$reply" = "Y" ] || [ "$reply" = "y" ];then
  222.   for file in $@
  223.   do
  224.    if [ -f $file ]||[ -d $file ];then
  225.     mv -b $file ~/.trash
  226.    else
  227.     echo "$file:No such file or directory"
  228.    fi
  229.   done
  230.  fi
  231. fi
  232. ########################
  • 1


                                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值