проверка наличия скрипта [не работает] [закрыто]

Я хочу проверить существование каталога пути и включил образец каталога, в котором у меня есть разрешения на просмотр файлов, и появляется следующее сообщение:

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

Пожалуйста, помогите мне!

0
задан 23 October 2015 в 21:08

2 ответа

Есть две вещи, продолжающиеся. 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

кроме того, не кодируйте, прежде чем у Вас будет кофе

1
ответ дан 28 July 2019 в 10:45
  1. Вы должны изучить, как переназначение в Unix - работа. Поскольку Вы должны использовать переназначение, когда Вы призываете сценарий, но не в кодексе.
  2. я не уверен, но я думаю, что Вы должны заменить #!/bin/ksh #!/bin/sh.
  3. ПРИБЫЛЬ!
#!/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
0
ответ дан 28 July 2019 в 10:45

Другие вопросы по тегам:

Похожие вопросы: