【发布时间】:2013-08-19 22:38:09
【问题描述】:
假设我有一个非常简单的脚本,它在某个目录中创建一个链接,如果失败则终止该脚本。
ln -s "/opt/myapp" "${1}/link" || exit 1;
现在,如果遇到错误,它就会退出。我想更改它,只有在创建链接时遇到权限错误,它才会执行以下行而不是退出:
echo "The target directory requires root privileges to access."
sudo ln -s "/opt/myapp" "${1}/myapp" || exit 1;
我不想提示用户以 root 身份运行,除非他们绝对必须这样做。
ln 似乎在失败时返回退出代码 1,无论是权限问题还是任何其他错误(例如目录不存在),所以我无法使用它来检测它遇到的问题。
如果我改为通过 ln 的输出存储对字符串“Permission denied”的搜索,我假设它在非英语操作系统上会失败。
【问题讨论】:
标签: bash shell file-permissions