#linux #bash #shell
#linux #bash #оболочка
Вопрос:
Я пишу простой сценарий оболочки для очистки файлов журналов в redhat:
Имя файла: clean.sh
#!/bin/bash
rm -f *.log core.*
Но когда я набрал чистый или clean.sh , это всегда подсказывает
-bash: clean: command not found
-bash: clean.sh: command not found
В чем проблема?
Ответ №1:
Вероятно, у вас нет .
(текущего каталога) в вашем $PATH
(и это хорошо; наличие .
в вашем $PATH
может быть опасным.)
Попробуйте это:
./clean.sh
И если имя файла сценария clean.sh
равно, вы не можете запустить его как просто clean
, с каталогом или без него. Имя файла clean.sh
, и именно так вам нужно его выполнить.
Или вы можете изменить имя с clean.sh
на просто clean
. Unix-подобные системы (включая Linux) не зависят от расширений файлов, как это делает Windows.
Ответ №2:
проблема 1: возможно, разрешение на выполнение clean.sh не установлен. Сделайте это:
chmod x ./clean.sh
проблема 2: RH Linux по умолчанию не включает CWD в path. Итак, когда вы находитесь в том же каталоге, что и clean.sh , тип:
./clean.sh
Это должно выполнить его.
Комментарии:
1. Как вы и сказали, у него нет разрешения exe и его нужно добавить./