echo aaa | ./start.sh
上記のようなことをした際、
./start.shに
stty -echo
等のsttyコマンドがあると、
stty: : そのようなデバイスもアドレスもありません。
というメッセージが出力されます。
(実際には正常に処理されています。)
start.shは文末のようなものです。
これを実行すると
% echo aaa | ./start.sh
stty: : そのようなデバイスもアドレスもありません。
please input password:
stty: : そのようなデバイスもアドレスもありません。
aaa
%
となり、「aaa」はちゃんと渡せています。
■質問1
なぜこのようなエラーが出るのか。
■質問2
なぜ上記のようなエラーが出ているのに、
値が渡せているのか。
参考になるような情報でもかまいませんのでよろしくお願いします。
start.sh
#!/bin/sh
stty -echo
echo "please input password:"
read PASSWORD
stty echo
echo $PASSWORD
No.1ベストアンサー
- 回答日時:
>なぜこのようなエラーが出るのか。
stty は標準入力デバイスの設定を表示・変更するコマンドです。デバイスが端末であることを前提としています。パイプにすると標準入力が端末で無くなるのでコマンドが想定していないためエラーになります。
>なぜ上記のようなエラーが出ているのに、値が渡せているのか。
sttyコマンドだけがエラーなので、それ以外の行は正常に実行されます。
echo "please input password:"
read PASSWORD
echo $PASSWORD
は、正常に実行されるため、入力データが表示されることになります。
stty コマンドをシェルスクリプト中で使うときは、test コマンドで、標準入力が端末かどうか調べて、端末のときだけ実行されるようにします。
test -t 0 && stty -echo
もしくは、
if test -t 0
then stty -echo
fi
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
SCコマンドでアクセス拒否
-
echo $!の意味を教えてください
-
「環境変数名の編集」ウィンド...
-
AIXでの文字コード、改行コード...
-
aquos HDD交換品について
-
shutdownコマンドをキャンセル...
-
Excel下部のメニューが消えた
-
bash: dkpg: コマンドが見つか...
-
コマンドプロンプトにおけるコ...
-
TeXのコマンドを教えてください。
-
vbaで「最前面に」とする方法は?
-
相手PCのMACアドレスを知るため...
-
ワイルドカードを使ってでフォ...
-
Linux:sedコマンドで置換がし...
-
dig/host/nslookup コマンド...
-
DOSコマンドについて
-
ディストリビューションによっ...
-
JP1での保留Job一覧取得につき...
-
Linuxコマンドは何の言語で書か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
SCコマンドでアクセス拒否
-
[バッチファイル]レジストリ値...
-
Linuxコマンドは何の言語で書か...
-
「環境変数名の編集」ウィンド...
-
shutdownコマンドをキャンセル...
-
echo $!の意味を教えてください
-
Excel下部のメニューが消えた
-
vbaで「最前面に」とする方法は?
-
AIXでの文字コード、改行コード...
-
Linux:sedコマンドで置換がし...
-
compressコマンドってなくなっ...
-
コマンドプロンプトにおけるコ...
-
コマンド履歴が~/.bash_history...
-
ワイルドカードを使ってでフォ...
-
アクセスのボタンから指定のワ...
-
クイックアクセスツールバーに...
-
ディスク上のサイズを確認する方法
-
DOSコマンドについて
-
setxコマンドが思い通りにいかない
おすすめ情報