扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章给大家分享的是有关Shell常用的知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联专业为企业提供石狮网站建设、石狮做网站、石狮网站设计、石狮网站制作等企业网站建设、网页设计与制作、石狮企业网站模板建站服务,十年石狮做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
readlink 能帮助我们在Linux环境获取命令所在的实际目录下
#dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"
root@devops:~# ls /usr/local/
bin/ games/ jdk/ lib/ openresty/ share/
etc/ include/ jdk1.8.0_171/ man/ sbin/ src/
root@devops:~# ls /usr/local/
bin etc games include jdk jdk1.8.0_171 lib man openresty sbin share src
root@devops:~# which javac
/usr/local/jdk/bin/javac
root@devops:~# readlink -f $(which javac)
/usr/local/jdk1.8.0_171/bin/javac
set
是BASH内置的命令,如果不提供选项给set
,默认情况下会打印所有的变量和函数的名称和值。
常用的选项:
-u
或者-o nounset
: 执行脚本时遇到的不存在的变量时报错,默认情况下BASH会自动忽略
set -x
或者-o xtrace
: 用来在运行结果之前,先输出执行的那一行命令。一般在调试脚本时候很有用
-e
: 根据返回值判断命令是否运行成功。只要脚本发生错误,就终止执行。但是对于管道命令来说就不是很好用了。因为管道命令是把最后一个命令的返回值当做整理命令的返回值
+e
: 关闭-e
选项,为了针对特殊的场景,比如有些返回值为非零的时候才执行脚本时候可以使用。
set -o pipefail
: 只要有一个子命令失败,整个管道命令就失败了。
一般建议将以上四个删除放在BASH的头部使用
#!/bin/bash
set -eux
set -p pipefail${YOUR_COMMAND}
变量 | 含义 |
---|---|
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(“ “)包含时,与 $* 稍有不同 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
感谢各位的阅读!关于“Shell常用的知识点有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流