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
Другие вопросы по тегам