В большинстве мест вы указали переменную $file
, а в команде cp
- нет. Должно быть:
cp "$file" "$file.bkup"
Некоторые из ваших echo
команд имеют в конце "\ c". Я думаю, что это специфично для csh. Bash буквально повторяет символы "\" и "c".
Ваше утверждение while $TRUE
работает в силу того, что переменная равна нулю или не установлена. Если ему присвоено какое-либо значение, он попытается выполнить содержимое как команду. Если вы хотите сделать этот тип бесконечного цикла, это обычно делается в Bash следующим образом:
while true
где true - встроенная оболочка. Или:
while :
где двоеточие не используется, и возвращает true. Конечно, есть и другие способы сделать то же самое.
В случае l|L)
вы, вероятно, захотите сделать либо:
ls
или
ls $PWD
как у вас сейчас, он попытается перечислить запись для файла с именем "pwd".
И vim, и nano могут выполнять подсветку синтаксиса для Bash. Если они еще не настроены в ~/.nanorc
и ~/.vimrc
, вы можете сделать это:
для нано:
nano -Y sh scriptname
Для vim:
:syntax on
:set filetype=sh