#!/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
, она работает, есть ли другой способ написать?
решение1
Вероятно, это проблема с окончанием строки. Если вы откроете run.sh
в vim и запуститеset fileformat=unix
и +
появляется (чтобы показать, что файл теперь изменен), это означает, что файл имел окончания строк DOS, которые Bash не может правильно интерпретировать. Сохраните и выйдите, и скрипт должен работать.
В будущем, если происходит что-то явно странное, используйте команду типаod -ctx1 run.sh
чтобы посмотреть, что на самом деле находится в файле.