Код Bash работает правильно, когда он выполняется в терминале, но не работает правильно, когда выполняется с помощью udev

Почему вы используете awk для этого? Если у вас есть оригинал, так и целевое имя, почему бы не только MV abc.txt regperl / ab.txt ?

Если у вас нет целевого имени и просто хочу удалить символ из Оригинал, вы можете сделать это в оболочке. Опять же, нет необходимости в :

file="abc.txt"; mv "$file" begperl/"${file//c}"

, которые удаляют все вхождения C из $ файла . Чтобы удалить только первый, используйте

file="abc.txt"; mv "$file" begperl/"${file/c}"

. В качестве альтернативы, вы могли бы сделать

mv abc.txt begperl/"$(echo "abc.txt" | sed 's/c//')"
0
21.04.2014, 13:49
1 ответ

Возможно, в среде udev, выполняющей эти сценарии, не определен PATH. Попробуйте использовать полные пути к командам cd , mkdir , cp и т. Д. Вы можете узнать пути, используя, например, команду which cd в оболочке.

0
28.01.2020, 05:00

Теги

Похожие вопросы