変数aとbを使用してコマンドの出力を読み取るスクリプトを作成しています。これはスクリプトです。
#!/bin/bash
read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)
echo "The value of a is $a"
echo "The value of b is $b"
次の構文エラーが発生します。
line 3: syntax error near unexpected token `<'
line 3: `read a b < <(awk /Application Server/ && !seen[$7]++{echo "%s ", $7} /tmp/ServerState)'
ただし、コンソールに同じコマンドを入力すると、問題なく動作します。
app@user:/tmp> read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)
app@user:/tmp> echo $a
FAILED
app@user:/tmp> echo $b
STARTED
これにご協力いただきありがとうございます。
答え1
sh
(ほとんどの(Debian派生)システムに接続されているdash
)許可されていませんプロセスの交換。に電話してみてくださいbash script.sh
。 ./script.sh で実行されるのと同じ呼び出しはsha-bang
次のとおりです。/bin/bash
あなたのスクリプトから。
答え2
sh file.shでスクリプトを呼び出そうとしましたが、エラーが発生しました。しかし、./file.shとbash file.shを使って同じスクリプトを呼び出すと、うまくいき、望ましい結果が得られます。