温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Shell常用的知识点有哪些

发布时间:2021-12-18 09:09:48 来源:亿速云 阅读:142 作者:小新 栏目:云计算

这篇文章给大家分享的是有关Shell常用的知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Shell常用的知识点

获取被软连接的真实值—readlink

  • 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

定制化脚本的运行SHELL环境—set

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}

Shell中的变量

变量含义
$0当前脚本的文件名
$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是2。
$#传递给脚本或函数的参数个数。
$*传递给脚本或函数的所有参数。
$@传递给脚本或函数的所有参数。被双引号(“ “)包含时,与 $* 稍有不同
$?上个命令的退出状态,或函数的返回值。
$$当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

感谢各位的阅读!关于“Shell常用的知识点有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI