bash相关问题总结
七月专题 - -
关于bash中的 <<<
的含义
在StackOverflow中有个例子非常的详细。。先贴连接 What does <<< mean? 以下是我的渣翻译,可能会翻译错。。
我们可以这样对字符串进行处理
1 | echo "$string" | command |
然而在bash中,这样写(使用管道)就相当于把命令分到子shell中进行处理,考虑这种情况
1 | echo "hello world" | read first second |
它会输出一个空行,子shell成功的读到了两个变量,但是随后子shell退出,两个变量就消失掉了。所以输出是没有结果的。应当这样写
1 | echo "hello world" | { |
但是这样还是没有解决这种分成子shell去执行的尴尬。这时候就能够使用 <<<
了
1 | read first second <<< echo "hello world" |
关于${!var} var是变量名
使用${!var}的作用是当ver不存在的时候会原样输出,也就是显示${var}
关于bash中的trap命令的使用
trap可以强化bash脚本,让脚本更加稳定。
trap的使用方式
trap有三种使用方式,对应这不同的对信号的回应方式。
- trap ”something“ signal
其中”something“ 是在接受signal信号之后作出的命令
- trap signal
trap不指定任何命令,接受信号的默认操作,默认操作是结束进程的运行
- trap “” signal
trap命令指定一个空命令串,允许忽视信号
常用信号
HUB(1) 挂起,通常因终端掉线或用户退出而引发
INT(2) 中断,通常因按下Ctrl+C组合键而引发
QUIT(3) 退出,通常因按下Ctrl+/组合键而引发
ABRT(6) 中止,通常因某些严重的执行错误而引发
ALRM(14) 报警,通常用来处理超时
TERM(15) 终止,通常在系统关机时发送
KILL(9) 杀死进程
STOP 停止进程执行
更过的信号 可以使用 trap -l 命令来查看