LINUX.ORG.RU

Не запускается bash скрипт.

 


0

1
Проблема:

– Создаю файл скрипта и записываю в него код. Файл не исполняется:

tvr > cat > hello.sh
#!/bin/bash
echo "Hello programmers!"
^Z
[1]+  Остановлен    cat > hello.sh
tvr > chmod +x hello.sh 
tvr > /home/timey/smt/hello.sh 
bash: /home/timey/smt/hello.sh: /bin/bash: неверный интерпретатор: Текстовый файл занят

– Открываю файл в medit и просто сохраняю, нажатием Ctrl+S, после чего снова запускаю скрипт:

tvr > medit hello.sh &
tvr > /home/timey/smt/hello.sh 
Hello programmers!

Все работает.

В чем причина? Почему скрипт, созданный в командной строке при помощи cat не запускается, а после его пересохранения в текстовом редакторе, все начинает работать?

Подозреваю, что проблема как-то связана с кодировками. В shell`е я смог разобраться с кодировками, а в bash пока нет. Или с прерыванием процесса по ^Z.

В чем проблема?



Последнее исправление: Cl_Magenta (всего исправлений: 1)

В чем причина? Почему скрипт, созданный в командной строке при помощи cat не запускается, а после его пересохранения в текстовом редакторе, все начинает работать?

Если происходит запуск не через интерпретатор, а непосредственно вызывается на запуск сам файл, то запуск осуществляет ядро, вызывая интерпретатор путем распознавания магической первой строки. Но открыть на запуск можно только закрытый от изменения файл.

Подозреваю, что проблема как-то связана с кодировками. В shell`е я смог разобраться с кодировками, а в bash пока нет. Или с прерыванием процесса по ^Z.

Процесс по ^Z не прерывается, а замораживается c возможностью его продолжения.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Но открыть на запуск можно только закрытый от изменения файл.

Спасибо.

Cl_Magenta
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.