Назад | Перейти на главную страницу

Нет такого файла или каталога сценария оболочки linux

#!/bin/bash
mysql -uroot -pwelcome1 < /home/sai/first.sql

echo "The program has completed"

Я пытаюсь вызвать файл sql из сценария оболочки, я запускаю сценарий как bash run.sh, но это говорит о том, что такого directoryfirst.sql нет, но если я запускаю эту команду отдельно как mysql -uroot -pwelcome1 < /home/sai/first.sql, работает, есть ли другой способ записи?

Вероятно, это проблема с окончанием строки. Если вы откроете run.sh в vim и запустите set fileformat=unix и + появляется (чтобы показать вам, что файл теперь изменен), это означает, что файл имеет окончания строки DOS, которые Bash не может правильно интерпретировать. Сохраните и выйдите, и сценарий должен работать.

В будущем, если произойдет что-то явно странное, используйте команду вроде od -ctx1 run.sh чтобы посмотреть, что на самом деле находится в файле.