我正在学习如何set在我的脚本中有效地使用不同的选项,并发现set -u如果变量设置不正确(例如删除用户),这似乎非常适合退出我的脚本。根据手册页,set -u并set -e执行以下操作...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Run Code Online (Sandbox Code Playgroud)
我创建了一个测试脚本来测试此功能,但它似乎没有按预期工作。也许有人可以更好地向我解释我的问题以及我误解的地方?测试脚本如下。谢谢你。
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Run Code Online (Sandbox Code Playgroud)
我希望脚本显示0和"This works",然后由于${testing2}未设置而失败。
相反,我显示0和"This works",然后是0然后是0 这不应该出现
有人可以提供一些知识吗?谢谢你。
我一直在努力让 /etc/security/access.conf 按预期工作,到目前为止每个用户仍然可以登录。详细信息如下。
我将以下行添加到 /etc/pam.d/login
account required pam_access.so
Run Code Online (Sandbox Code Playgroud)
我还在 /etc/security/access.conf 中添加了以下几行
+ : root : ALL
+ : group_name : ALL
- : ALL : ALL
Run Code Online (Sandbox Code Playgroud)
group_name 是我们的 LDAP 服务器 (FreeIPA) 内的一个组。任何用户仍然可以登录,无论他们是否属于 ${group_name}。我可以通过 SSH 连接到服务器,任何用户都不会出现任何问题。有人可以帮助指出我哪里不正确吗?我运行的是 RHEL 6.5。谢谢
对创建 RPM 还很陌生,但我已经掌握了基础知识。我正在编写基础脚本,并且有一个要求,即我不能接受将存储新创建的 RPM 的默认位置。
通常,创建的 RPM 存储在 ~/rpmbuild/RPMS 中
我需要将它们保存到 /centralStorage/Some/New/Location。
RPM 构建器正在寻找什么变量来知道将新创建的 RPM 保存在哪里?我似乎无法在文档中找到如何手动更改它。