Я хочу проверить существование каталога пути и включил образец каталога, в котором у меня есть разрешения на просмотр файлов, и появляется следующее сообщение:
No such file or directory /long_path/path1/abc.txt
No such file or directory /long_path/path2/xyz.txt
Вот код:
#!/bin/sh
set -x
while read line; do
(ls -l $line)
done </something/pathlist.txt
Внутри pathlist.txt:
/long_path/path1/abc.txt
/long_path/path2/xyz.txt
Я пробовал разные итерации ... example2.sh код:
#!/bin/ksh
echo "Start!"
#entry="/something/pathlist.txt"
while read entry; do
if [ -s $entry ];
then
echo "$entry exists"
else
echo "$entry does not exist..."
fi
done </something/pathlist.txt
example3.sh код:
#!/bin/csh
while read entry; do
if [ -e $entry ];
then
echo "$entry does not exist"
else
echo "$entry exists "
fi
done </something/pathlist.txt
Пожалуйста, помогите мне!
Есть две вещи, продолжающиеся. if list; then list; [elif list; then list;] ... [else list;] fi
заявление воздействует на статусы выхода. Если статус выхода списка № 1 0 тогда, список 2 выполнен; еще это идет в список 3.
испытательная команда (который является aliased с квадратными скобками), возвращается 0, если кодекс успешен [ -e /etc/passwd ]
.
Так в смысле это совпадает с в C и Яве, но полностью измененный.
Исправленный сценарий
#!/bin/mksh
#set -x
echo "Start!"
while IFS= read entry; do
if [ -e "$entry" ] ; then
echo "$entry exist"
else
echo "$entry doesnt exist"
fi
done < $HOME/pathlist.txt
кроме того, не кодируйте, прежде чем у Вас будет кофе
#!/bin/ksh
#!/bin/sh
. #!/bin/sh
while read entry; do
if [ -s $entry ];
then
echo "$entry exists"
else
echo "$entry does not exist..."
fi
done
Экономят его и затем.
chmod +x example2.sh
example2.sh < something/pathlist.txt