単純なbashコマンドだと思うのに問題があります。
私は基本的に複数のファイルを繰り返して名前を取得したいと思います。
`ls ./*.sql` # list all files ending with .sql
if [ $? != 0 ] # make sure such files exist
then
echo "no such file"
else
echo "files exist"
fi
私が走るとき
"ls ./*.sql"
期待していたものを手に入れた
./file01.sql ./file02.sql
しかし、bashスクリプトを実行すると
./file01.sql: line 1: some random error
./file01.sql: line 2: some random error
./file01.sql: line 3: some random error
./file02.sql: line 1: some random error
./file02.sql: line 2: some random error
./file02.sql: line 3: some random error
なぜこれが違うのか知っている人はいますか?
ベストアンサー1
後に続く引用符です。実行するコマンドの出力をシェルに通知します。
例えば
`echo ls`
実行できますls
。
あなたの場合、bashにsqlファイルの実行を要求しました。 bashはこれを行うことができず、SQLはbashには適していないので、これは明らかにあなたが望むものではありません。
また、この修正を適用しても、スクリプトは説明されているようには行われません。他の人(Janis)もこの問題を解決する答えを提供しましたが、スクリプトがなぜそうしたのか説明しませんでした。