У нас есть сценарий оболочки, который должен считать строку из файла, где содержание файла является именами файлов, мы должны определить местоположение пути этих имен файлов и скопировать в другой каталог. Здесь мы записали ниже сценария оболочки, каждый раз, когда сценарий ведет себя по-другому Сразу, цикл с условием продолжения просто читает одну строку и выходы Во втором экземпляре, определять местоположение команда хорошо работает для первой строки файла, и вторая строка в файле не обеспечивает вывод, который это дает пустому выводу
#!/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
почему IHS = в этом месте?
Если IFS необходима для thos сценария, Вы могли бы рассмотреть что-то как
OLD_IFS=$IFS
IFS=
... your script
IFS=$OLD_IFS
Начало Вашего сценария это становится:
#!/usr/bin/ksh
file="test.txt"
while IFS= read -r line
do