
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを使って電源を切るには?
-
Linuxコマンドは何の言語で書か...
-
Linuxで/usr/bin/wcって何ですか?
-
windowsコマンドでUnixのcutコ...
-
Windows 7 のフォルダーの部分...
-
コマンドバーとはどれの事?
-
ext2,3,4ファイルシステムの判別
-
lsコマンドでforkできない
-
SONYの音楽ソフト「x-アプリ」...
-
ファイル名一覧の印刷
-
pingは正常なのにtracerouteで...
-
シェルスクリプトとターミナル...
-
SPI非言語の問題 解説お願いします
-
エクセルの表にヘンな枠が・・・
-
ubuntuの端末の左にカレントデ...
-
Docker環境は以下通りです。doc...
-
Linux のシェルスクリプトの強...
-
bashでシングルクォート内の変...
-
PowerShellのスクリプト実行に...
-
emacsでCtrl+zを押してサスペン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
コマンドプロンプトにおけるコ...
-
compressコマンドってなくなっ...
-
[バッチファイル]レジストリ値...
-
「環境変数名の編集」ウィンド...
-
SCコマンドでアクセス拒否
-
Linuxコマンドは何の言語で書か...
-
vbaで「最前面に」とする方法は?
-
至急です、Ubuntuに詳しい方助...
-
AIXでの文字コード、改行コード...
-
画面の文字をさかのぼってみる...
-
クイックアクセスツールバーに...
-
solarisのdateコマンドで
-
Ctrl+Zで戻りすぎた場合、逆に...
-
ワイルドカードを使ってでフォ...
-
dig/host/nslookup コマンド...
-
shutdownコマンドをキャンセル...
-
アクセスのボタンから指定のワ...
-
echo $!の意味を教えてください
-
Linuxでコマンドが終了しない
おすすめ情報