这篇文章给大家分享的是有关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常用的知识点有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。