Я написал скрипт для изменения владельцев файлов на основе введенного списка ввода. Мой скрипт отлично работает в каталогах без пробелов в их имени. Однако он не может изменять файлы в каталогах с пространством в их имени. Я также хотел бы захватить вывод команды chown в файл. Может ли кто-нибудь помочь?Как захватить вывод chown в сценарии ksh
здесь мой сценарий в KSH:
#!/usr/bin/ksh
newowner=eg27395
dirname=/home/sas/sastest/
logfile=chowner.log
date > $dir$logfile
command="chown $newowner:$newowner"
for fname in list
do
in="$dirname/$fname"
if [[ -e $in ]]
then
while read line
do
tmp=$(print "$line"|awk '{if (substr($2,1,1) == "/") print $2; if (substr($0,1,1) == "/") print '})
if [[ -e $tmp ]]
then
eval $command \"$tmp\"
fi
done < $in
else
echo "input file $fname is not present. Check file location in the script."
fi
done
Держу пари, что вам не нужен awk вообще: что находится в файле «Список»? –
Файл списка и несколько других файлов ввода, которые могут быть добавлены в цикл for, содержат отчет о файлах, которые пользователи оставили. Я разделяю имена файлов с этими файлами, а затем пытаюсь изменить право собственности на них с текущим пользователем, чтобы можно было управлять диском. – Bijan
Но ваша команда awk указывает, что в строке есть 2 поля. Что находится в этом файле? Это может быть источником ваших проблем. –