我试图使用以下方法测试 noclobber 选项:if [ -o noclobber ]
但它什么也没变。
我在 using: 上设置了 noclobber 选项set +o noclobber
。
prompt> cat checkoption.sh
#!/bin/bash
if [ -o noclobber ]
then
echo "Option is on."
fi
prompt>
prompt> set +o noclobber
prompt> set -o | grep noglobber
noclobber on
prompt> ./checkoption.sh
prompt>
知道为什么我在这里没有收到消息吗?
Shell 选项不会在 Shell 会话之间继承,您在这里处理两个 Shell 会话:
shell 脚本永远不会检测到该选项是在调用交互式 shell 会话中设置的。
解决方案:
把你的代码变成一个 shell 函数(例如
$HOME/.bashrc
):或者,对于一般情况,
在脚本中设置选项。
source
使用或使用.
命令在交互式 shell 中获取脚本文件。