Цикл с условием продолжения не работает, он читает первую строку и выходит и определять местоположение команда, которая используется, не производит значение

У нас есть сценарий оболочки, который должен считать строку из файла, где содержание файла является именами файлов, мы должны определить местоположение пути этих имен файлов и скопировать в другой каталог. Здесь мы записали ниже сценария оболочки, каждый раз, когда сценарий ведет себя по-другому Сразу, цикл с условием продолжения просто читает одну строку и выходы Во втором экземпляре, определять местоположение команда хорошо работает для первой строки файла, и вторая строка в файле не обеспечивает вывод, который это дает пустому выводу

Сценарий оболочки

#!/usr/bin/ksh
file="test.txt"
while IFS= read -r line
do
    # display $line or do somthing with $line
        echo "$line"
        fileloc=`locate "$line"`        
        i=`echo $?`
    if [ $? != 0 ]
    then
        echo "Unsuccessful" 
    else              
        echo $fileloc 
        cp $fileloc /home/user/PO_AUDIT
        echo "Successful"  
    fi     
done <"$file"

test.txt (ниже имена файлов, которые хранятся в нашем сервере),

11687892
11687893
0
задан 20 March 2019 в 09:22

1 ответ

почему IHS = в этом месте?

Если IFS необходима для thos сценария, Вы могли бы рассмотреть что-то как

OLD_IFS=$IFS
IFS=
... your script
IFS=$OLD_IFS

Начало Вашего сценария это становится:

#!/usr/bin/ksh
file="test.txt"
while IFS= read -r line
do
0
ответ дан 26 October 2019 в 00:23

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

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