unix shell programming的一些细节

本文探讨了Shell脚本中的各种技巧,包括test语句的使用规范、字符串定义方式、true值的应用、变量声明方法、环境变量的作用范围、变量替换的处理顺序以及命令提示功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • test语句在 等号 前后 都要有空格 , 空格可以多于一个; 推广一下, 赋值语句的等号前后不能有空格, 非赋值语句要有空格(我还不敢绝对的这么说)
  • 双引号, 就相当于printf下的双引号;单引号就是一个字符串括号, 里面的就是字符串内容
  • true,比如test下的一个成功匹配, 返回0, 在if下是有效的真值
  • 声明一个数字参数: declare -i x,更多declare的用法点击这里
  •  shell下运行的脚本是在登录终端下运行的子终端, 子终端有自己的环境, 登录终端和子终端共享环境变量. 子终端下export的数据在父终端下不会改变, 反过来却有效
  • shell先对pipe和重定向处理, 然后再作变量代换。有时要使得命令先作代换(特别是对特殊符号的处理),eval command
  • jing@jing-laptop:~$ E= ;echo $E; echo ${E:-/bin};echo $E

    /bin

    jing@jing-laptop:~$ E= ;echo $E; echo ${E:=/bin};echo $E

    /bin
    /bin
    说明: :-和:=都设置一个默认值, 当变量为空时, 默认值被代入, 前者只是临时代换, 后者则是对变量赋值
  • shell的命令提示功能: 连按两下tab, 可以只按tab, 然后可以输出所有命令, 或者输入某些提示词,再按tab, 比如o+tab+tab, 列出所有以o开头的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值