我只是想知道是否有任何方式可以说'如果chmod没有更改文件的权限,那么......'
if ! chmod ${1} ${2} #if chmod did not excecute correctly
then
echo "${0}:ERROR: ${2} has not been changed." 1>&2
exit 6 #exiting due to failure. status 6
fi
我尝试了这个以及其他几种方法,但我只能添加到当前设置而不是更改它......
即如果我以-rwxr-xr-x开头,我将其更改为-rwxrwxrwx
似乎没有其他工作答案 0 :(得分:1)
你的命令是正确的。但它只检测chmod何时无法运行(例如,当您不拥有该文件时,当FS是只读时等)。
如果你还想检测chmod没有改变任何东西,试试这个:
if ! res=$(chmod -c -- "${1}" "${2}") || [ -z "$res" ]
then
echo "${0}:ERROR: ${2} has not been changed." 1>&2
exit 6 #exiting due to failure. status 6
fi
-c
标志特定于GNU chmod。这是描述:
-c, --changes
like verbose but report only when a change is made
-v, --verbose
output a diagnostic for every file processed