#!/bin/bash
mysql -uroot -pwelcome1 < /home/sai/first.sql
echo "The program has completed"
Я пытаюсь вызвать sql-файл из сценария оболочки, я запускаю сценарий как bash run.sh
, но он сообщает, что такого каталога нет .first.sql, но если я запустил эту команду отдельно как mysql -uroot -pwelcome1 , он работает, есть ли другой способ записи?
Вероятно, это проблема с окончанием строки. Если вы откроете run.sh
в vim и запустите set fileformat = unix
, и появится +
(чтобы показать вам, что файл теперь изменен), это означает что в файле есть окончания строки DOS, которые Bash не может правильно интерпретировать. Сохраните и закройте, и сценарий должен работать.
В будущем, если произойдет что-то явно странное, пожалуйста, используйте команду вроде od -ctx1 run.sh
, чтобы посмотреть, что на самом деле находится в файле.