Shell脚本的特殊变量和特殊符号应用

小鱼儿 2024-04-23 01:50 178阅读 0赞

记录:428

场景:Shell脚本中常用特殊符号,=,$,${},$0,$n,$#,$*,$@,$?,$$,(( )),[[ ]],$[],|,>>,>,<,<<。

版本:CentOS Linux release 7.9.2009。

1.Shell特殊符号功能简述

(1)使用=赋值变量。

(2)使用$和${}获取变量值。

(3)使用$0获取当前脚本文件名称。

(4)使用$n获取传递给脚本或函数的参数,n数字,表示第几个参数。例如:$1表示第1个参数,$2表示第2个参数。

(5)使用$#获取传递给脚本或函数的参数个数。

(6)使用$*获取传递给脚本或函数的所有参数。

(7)使用$@获取传递给脚本或函数的所有参数。

(8)使用$?获取上个命令的退出状态。

(9)使用$$获取当前Shell进程ID。

(10)使用(( )),对整数进行数学运算。

(11)使用$[],对整数进行数学运算。

(12)使用[[ ]],检测某个条件是否成立。

(13)使用|管道符连接多个命令。

(14)使用>>,以追加的方式,把命令的正确输出结果输出到文件中。

(15)使用>,以覆盖的方式,把命令的正确输出结果输出到文件中。

(16)使用<,把文件中的内容作为命令的输入源。

(17)使用<<,从标准输入(键盘)中读取数据,直到遇见停止符EOF才停止输入。停止符EOF是任意的字符串,用户自己定义的符号。

2.Shell特殊符号使用脚本

  1. #!/bin/bash
  2. echo '1.使用=赋值变量'
  3. city01="Hangzhou"
  4. city02='Suzhou'
  5. city03=Shanghai
  6. echo '2.使用$和${}获取变量值'
  7. echo "城市名称: $city01"
  8. echo "城市名称: ${city02}"
  9. echo "城市名称: ${city03}"
  10. echo '3.使用$0获取当前脚本文件名称'
  11. echo "脚本名称: $0"
  12. echo '4.使用$n获取传递给脚本或函数的参数,n数字,表示第几个参数.例如:$1表示第1个参数,$2表示第2个参数'
  13. echo "第1个参数: $1"
  14. echo "第2个参数: $2"
  15. echo '5.使用$#获取传递给脚本或函数的参数个数'
  16. echo "参数个数: $#"
  17. echo '6.使用$*获取传递给脚本或函数的所有参数'
  18. echo "打印所有参数: $*"
  19. echo '7.使用$@获取传递给脚本或函数的所有参数'
  20. echo "打印所有参数: $@"
  21. echo '8.使用$?获取上个命令的退出状态'
  22. echo "上一命令状态码: $?"
  23. echo '9.使用$$获取当前Shell进程ID'
  24. echo "当前shell进程ID号: $$"
  25. echo '10.使用(( )),对整数进行数学运算'
  26. result=$((100*3+99))
  27. echo "计算结果: $result"
  28. echo '11.使用$[],对整数进行数学运算'
  29. result=$[100*5+99]
  30. echo "计算结果: $result"
  31. echo '12.使用[[ ]],检测某个条件是否成立'
  32. if [[ $1 < $2 ]]
  33. then
  34. echo "参数1小于参数2"
  35. elif [[ $1 == $2 ]]
  36. then
  37. echo "参数1等于参数2"
  38. else
  39. echo "参数1大于参数2"
  40. fi
  41. echo '13.使用|管道符连接多个命令'
  42. result=`ps -ef | wc -l`
  43. echo "管道符计算结果: ${result}"
  44. echo '14.使用>>,以追加的方式,把命令的正确输出结果输出到文件中'
  45. echo "Hangzhou" >> m01.txt
  46. echo "Suzhou" >> m01.txt
  47. echo "打印m01.txt文件内容:"
  48. echo $(cat m01.txt)
  49. echo '15.使用>,以覆盖的方式,把命令的正确输出结果输出到文件中'
  50. echo "Hangzhou" > m02.txt
  51. echo "Suzhou" > m02.txt
  52. echo "打印m02.txt文件内容:"
  53. echo $(cat m02.txt)
  54. echo '16.使用<,把文件中的内容作为命令的输入源'
  55. result=`wc -l </home/tutorial/province.txt`
  56. echo "输入重定向计算结果: ${result}"
  57. echo '17.使用<<,从标准输入(键盘)中读取数据,直到遇见停止符EOF才停止输入.'
  58. echo "在控制台按照如下格式试验"
  59. echo '[root@hadoop211 tutorial]# cat >/home/tutorial/province01.txt <<EOF'
  60. echo '> Hangzhou'
  61. echo '> Suzhou'
  62. echo '> EOF'

3.执行脚本

命令:bash b2023051620.sh 20 30

解析:执行命令且携带参数。

4.脚本执行结果

  1. [root@hadoop211 tutorial]# bash b2023051620.sh 20 30
  2. 1.使用=赋值变量
  3. 2.使用$${}获取变量值
  4. 城市名称: Hangzhou
  5. 城市名称: Suzhou
  6. 城市名称: Shanghai
  7. 3.使用$0获取当前脚本文件名称
  8. 脚本名称: b2023051620.sh
  9. 4.使用$n获取传递给脚本或函数的参数,n数字,表示第几个参数.例如:$1表示第1个参数,$2表示第2个参数
  10. 1个参数: 20
  11. 2个参数: 30
  12. 5.使用$#获取传递给脚本或函数的参数个数
  13. 参数个数: 2
  14. 6.使用$*获取传递给脚本或函数的所有参数
  15. 打印所有参数: 20 30
  16. 7.使用$@获取传递给脚本或函数的所有参数
  17. 打印所有参数: 20 30
  18. 8.使用$?获取上个命令的退出状态
  19. 上一命令状态码: 0
  20. 9.使用$$获取当前Shell进程ID
  21. 当前shell进程ID号: 1656
  22. 10.使用(( )),对整数进行数学运算
  23. 计算结果: 399
  24. 11.使用$[],对整数进行数学运算
  25. 计算结果: 599
  26. 12.使用[[ ]],检测某个条件是否成立
  27. 参数1小于参数2
  28. 13.使用|管道符连接多个命令
  29. 管道符计算结果: 140
  30. 14.使用>>,以追加的方式,把命令的正确输出结果输出到文件中
  31. 打印m01.txt文件内容:
  32. Suzhou Hangzhou Suzhou Hangzhou Suzhou Hangzhou Suzhou
  33. 15.使用>,以覆盖的方式,把命令的正确输出结果输出到文件中
  34. 打印m02.txt文件内容:
  35. Suzhou
  36. 16.使用<,把文件中的内容作为命令的输入源
  37. 输入重定向计算结果: 3
  38. 17.使用<<,从标准输入(键盘)中读取数据,直到遇见停止符EOF才停止输入.
  39. 在控制台按照如下格式试验
  40. [root@hadoop211 tutorial]# cat >/home/tutorial/province01.txt <<EOF
  41. > Hangzhou
  42. > Suzhou
  43. > EOF

注意:示例中使用的province01.txt,自行定义即可。

以上,感谢。

2023年5月16日

发表评论

表情:
评论列表 (有 0 条评论,178人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SHELL编程之特殊符号

    前言 本文是shell编程系列的第四篇,集中介绍了bash编程可能涉及到的特殊符号的使用。学会本文内容可以帮助你写出天书一样的bash脚本,并且顺便解决以下问题: 1.

    相关 Shell特殊变量$

    shell特殊变量 1)$\  所有参数列表。如"$\"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。  2)$@  所有参数列表。如"