linux shell 总结

这篇博客总结了Linux Shell编程的要点,包括脚本执行、变量设置、引用区别、条件测试、循环结构、函数和数组等内容,是学习Shell编程的好资料。
摘要由CSDN通过智能技术生成

概述

一些shell 编程中的总结,希望能帮到后面的朋友,少点学习成本

若有错误,欢迎指正

脚本执行

在当前shell 中执行

  • source  test.sh    
  •   .   test.sh
  • 开一个子shell 执行
  • bash test.sh 
  • ./ test.sh  

引申:当在一个脚本中需要用到外部脚本的变量的值,使用source  或  .  

设置变量的3种方法

  • export  变量名=value      (等号两边无空格)
  • 变量名=value ; export  变量名
  • declare -x 变量名=value

单引号(' ')和双引号(" ")的区别

  • 单引号( ' ' ):强引用,里面的变量值原样输出
  • 双引号( " " ):弱引用,变量会转换为相应的值

变量输出两种方法

  • $a
  • ${a}

引申${a}:   a=xxx

                ${a}_test   --输出-->   xxx_test

脚本里引用linux命令

  • CMD=`ls`  反引号(tab键上面的点)
  • CMD=$(ls)   $()

小结: 数字变量的定义 不加双引号( " " )

            其他的时候加双引号( " " )

             原样输出加单引号( " " )

引申: awk 使用:正确的输出变量值

TT="test"   

  • awk ‘BEGIN {print " 'TT' "}’    TT 这个变量单引号外部再加一个双引号
  • echo "$TT" | awk '{print $0}'   通过echo 和管道的方式

变量名赋值,两边不能有空格

  • a=1      正确
  • a = 1    错误

shell 中特殊且重要的变量

  • $0: 获取执行脚本的文件名
  • $n:获取脚本中第n个参数,n>9 ,${10}
  • $#:  获取执行shell 后参数的总个数
  • $*:  获取当前脚本所有传参参数,不加引号相当于 $@
  • $@: 不加引号与$*一样
  • $?: 获取上一个指令执行状态码 (0 成功,非零失败)
  • $$:获取当前执行shell脚本中的PID

加引号后的 $* 和 $@区别

  • "$@"   --->  "$1 $2 $3..."
  • "$*"    ----> " $1" "$2" "$3" ...

shell 脚本条件测试与比较

  • test  <condition>
  • [ <conditon> ]        :linux 里的脚本大多数使用的这种,建议使用这种方式
  • [[ <conditon> ]]
  • ((<condtion>))  :双括号一般用于if语句,两边不需要空格

1. test -f file && echo true || echo false

2. [ -f file ] && echo true || echo false   

1和2 完全等价,注意2 [ ] 两边的空格

  • &&  ||  >  <    ... 用于 [[ ]]
  • -a  -0 -gt -lt    ...用于 [ ]
  • [ ] 测试变量要加" "  ---> [ -f "$file" ] && echo true || echo false    不能是 $file 要
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值