2つの(Debian)Linuxサーバーがあります。シェルスクリプトを作成しています。
最初は配列を作成しました。
#!/bin/bash
target_array=(
"/home/user/direct/filename -p123 -r"
)
良い結果。ただし、別のサーバーで実行すると、次の結果が表示されます。
Syntax error: "(" unexpected
私が知っている限り、両方のサーバーは同じです。なぜこれがうまくいかないのかを説明できる人はいますか?
端末に直接入力しても大丈夫ですか?
私がこれを実行すると
sh scriptname.sh
エラーが発生しますが、実行すると
./scriptname.sh
問題ないようです。違いは何ですか?
ベストアンサー1
使用すると、最初の行に一緒に適用され./scriptname.sh
ます。ただし、使用すると代わりに実行されます。/bin/bash
#!
sh scriptname.sh
sh
bash
シェルにはsh
配列を生成する構文はありませんが、Bashにはユーザーが使用する構文があります。