Я пытаюсь написать сценарий, который принимает в качестве аргументов один или несколько файлов и транспонирует буквы верхнего регистра в буквы нижнего регистра. Содержимое исходного файла заменяется только на нижний регистр.
Файл, указанный в аргументах, должен существовать, он должен быть обычным файлом, он должен быть разрешен для чтения / записи, и он не может быть разрешен при выполнении или быть пустым.
# We assume the current file is valid.
declare valide="true"
if (("$#" < 1)) ; then
# Error, you must enter at least one parameter.
echo -e "Erreur. Vous devez entrer au moins un parametre."
fi
for param in "$@" ; do
if [ ! -e $param ] ; then
$valide="false"
elif [ ! -f $param ] ; then
$valide="false"
elif [ ! -r $param ] ; then
$valide="false"
elif [ ! -w $param ] ; then
$valide="false"
elif [ -x $param ] ; then
$valide="false"
elif [ -s $param ] ; then
$valide="false"
fi
if [ $valide=="true" ] ; then
# Create temporary file.
ficTemp=$(/usr/bin/mktemp)
$(tr '[:upper:]' '[:lower:]' < $param > $ficTemp)
$($ficTemp > $param)
else
# Error, the file $param is invalid for this script.
echo -e "Erreur. Le fichier $param est invalide pour ce script."
fi
done
Моя проблема в том, что когда я выполняю скрипт в обычной оболочке (не root), я получаю следующую ошибку:
line 45: /tmp/tmp.xxx: Permission denied
Вот результат ls -ld /tmp:
drwxrwxrwt. 12 root root 380 May 14 18:35 /tmp