我正在尝试更改文件的权限,并且我将文件的路径存储在数组中。
chmod 744 ${arrayOfFiles[1]}
1只是一个占位符,实际上它在for循环中是i
。但每当我运行此命令时,我都会收到此错误:
chmod: missing operand after ‘744’
我不知道为什么。我已经检查过${arrayOfFiles[1]}
实际上是否包含完整路径。
我不确定它为什么不起作用。
提前致谢。
编辑:
local i=0
filePermission="-rwxr--r--"
directoryPermission="-rwxr-xr-x"
for (( i=0; i<=${#arrayOfFilePermissions[@]}; i++))
do
if [ "${arrayOfFilePermissions[$i]}" != "$filePermission" ]; then
echo "File ${arrayOfFiles[$i]} has the wrong permission: ${arrayOfFilePermissions[$i]}"
echo ${arrayOfFiles[$i]}
chmod 744 ${arrayOfFiles[$i]}
echo "This has been changed to: $filePermission"
fi
done
数组arrayOfFiles包含文件名,arrayOfPermissions包含权限。我正在努力获得所有权限rwxr--r--
。
if语句正在运行,只是我试图从数组中获取值失败,并绘制空白