echo to file - ошибка: невозможно создать
В Unix кш. Я пытаюсь создать текстовый файл с несколькими строками текста, используя приведенное ниже выражение эха
echo $multilinetext > ../in/log_file
Я получаю сообщение об ошибке "Не удается создать". Также этот код работал нормально до некоторого времени.
Через filezilla я могу создать файл. Каталог "in" имеет все разрешения (777). иерархия Dir, как показано ниже
ParentDir
in
Bin
test.ksh
test.ksh выполняет команду echo
Что еще должно быть причиной ошибки
Обновление: проблема заключалась в том, что я выполнил скрипт из parentDir. Поэтому вместо того, чтобы сказать, что файл не существует, он нашел файл test.ksh в Bin и выполнил его без каких-либо ошибок. что заставило его искать "в" каталоге в неправильном месте
Можно ли проверить, выполняется ли скрипт из своего собственного каталога?
1 ответ
По вашему запросу вот небольшой скрипт, основанный на том, что вы опубликовали о своей иерархии:
#!/bin/sh -
# adjust this to suit
bin_dir="/tmp/top/bin"
multi=`cat /etc/passwd`
# get current directory
pwd="`pwd`"
# check to ensure we're in the correct directory
if [ "$pwd" != "$bin_dir" ]; then
echo "not executing from correct bin directory"
exit
fi
target_dir="../in"
# ensure the target directory for writing exists
if [ -d "$target_dir" ]; then
echo $multi > $target_dir/log_file
else
echo "unable to locate directory '$target_dir' -- does not exist"
fi