次のように、読み取りを使用してファイル記述子から読み取ろうとします。
read -u fd
良いこのリンクから。
これは私のbashスクリプトで使用されるコードです。
MESSAGE=$(read -u $NODE_CHANNEL_FD)
echo " parent message => $MESSAGE" >&2
正確なエラーメッセージ:
read: Illegal option -u
これが何であるかを知っている人はいますか?
答え1
このエラーメッセージは、実際に実行スクリプトを使用していないことを示しますbash
。
スクリプトを実行可能にし、#!
スクリプトの最初の行に適切な -line を追加します。
#!/bin/bash
またはスクリプトを明示的に実行しますbash
。
$ bash script.sh
別の言語を実装すると見なされsh
、bash
作成中のスクリプトに適したインタプリタを使用する必要があります。この場合はread
withオプションを使用してください-u
。これはもともと標準ksh
仕様read
の拡張bash
でしたzsh
。したがって、使用するか、bash
スクリプトzsh
を実行する必要がありますksh
。
いつ使用するのかsh
、いつ他のシェルを使用するのか、どうすればわかりますかbash
?シンプルでsh
動作方法や他のシェルに追加される他の機能を学ぶことができます。