Ниже приведен исходный код, который принимает только «файлы», перечисляет права доступа к файлу для файла и печатает выходные данные, заменяя
r = READ, w-WRITE, x-EXECUTABLE.
Также должно отображаться " Пользователь ". Но моя проблема здесь в том, что я заменил ' - ' на Пользователь, но тогда, если файл имеетразрешение r - x, он также печатает «Пользователь» @ в этот момент. Я знаю, что это неправильный способ сделать это. Может кто-нибудь предложить мне лучший способ повторить «Пользователь».
Iтакже пытался распечатать его перед циклом, но тогда он не будет служить моей цели, так как моя программа работает только с разрешениями файла FILE , а не с любым блоком / сокетом / каналом /каталог / и т.д. .
#!/bin/bash
if [ $# -lt 1 ];then
echo "USAGE: $0 file-name"
exit 1
fi
ls -l $1 | cut -c1-4 | tr "\012" "." > fp
i=1
while(($i <= 4))
do
p=`cat fp | cut -c$i`
case $p in
[dbsplc] | t) echo "not a file";
exit 1;;
-) echo "User";;
r) echo "READ";;
w) echo "WRITE";;
x) echo "EXECUTE";;
esac
((++i))
done
exit 0