• ベストアンサー

bashでローカルエコーをオフにする方法

簡単なシェルスクリプトで、 echo -n "Enter password: " read などと書く場合、入力が画面に表示されないよう、ローカルエコーをオフにするにはどうすればよいでしょう? C言語などを使うやり方ではなくて、シェルスクリプト中で実現できる方法がありましたら教えてください。 シェルは、bash-2.05です。

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

sttyコマンドを使ってみて下さい。 詳しくは man stty で。

retr
質問者

お礼

さっそくありがとうございました。おかげさまでできました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • シェルスクリプトbashについての質問

    シェルスクリプトbashについての質問 #!/bin/bash function QUIZ01() { echo "問題文" echo "(a)答えa(b)答えb(c)答えc" while echo -n "答えをa,b,cで入力してください:" read ANS do case $ANS in a) echo "正解" break;; b) echo "はずれ";; c) echo "はずれ";; *) echo "答えはa,b,cで入力";; esac done } function QUIZ02() { echo "問題文" echo "(d)答えd(e)答えe(f)答えf" while echo -n "答えをd,e,fで入力してください:" read ANS do case $ANS in d) echo "正解" break;; e) echo "はずれ";; f) echo "はずれ";; *) echo "答えはd,e,fで入力";; esac done } QUIZ01 QUIZ02 要件として トップ画面で選択肢 1.クイズ開始 2.アプリについて 3.アプリ終了 4.クイズ正解率 クイズを開始したら、 クイズは全5問で3問不正解でアプリを終了 問題の画面には現在の成果率が表示される 問題文は外部ファイルとする 問題の出現方法はランダムとして、問題は重複しない どうか教えてくださいお願いします

  • [bash]printfコマンドについて

    以下のシェルスクリプトを作成しています。 echo -n "開始> " read START echo -n "終了> " read END echo -n "桁数> " read DIGIT x=$(seq ${START} ${END}) y=$(printf "%06d\n" $x) echo $y 上のとおり、現在は6桁固定になっておりますが、最終的には"桁数"で取得した値となります。 どのように修正したらいいのでしょうか? ご回答をお待ちしております。

  • 【シェルスクリプト】 ローカル変数、グローバル変数

    シェルスクリプトのローカル変数、グローバル変数の取り扱いで迷っています。 ---------------- #!/bin/bash count=0 cat file | while read i do count=`expre $count + 1 ` done echo $count ---------------- fileの中身をcatで流して、それを一行ずつ読み込みます。 そのつど、count の値を増やしていくようにしたいのですが、最後の出力値は0となります。 cat→whileで読み込ませて処理している間はローカル変数として扱われているのでしょうか。 またそうであるならば、シェルスクリプトでグローバル変数を明示的に宣言するにはどうのようにすればいいのでしょうか。

  • シェルスクリプト間で排他をとりたい

    環境 linux(redhat) 使用シェル bash シェルスクリプトAとシェルスクリプトBを作成し、 シェルスクリプトAが動作している間は、シェルスクリプトBの動作を禁止したいと考えています。 例えば、シェルスクリプトAが起動している状態で、シェルスクリプトBが起動されたとき、シェルスクリプトBは、シェルスクリプトAが起動していることを検知して、自発的に処理を終了するようにしたいと考えています。 上記のような仕組みをシェルスクリプトで実現可能でしょうか? 基本的には、シェルスクリプトの先頭で、ある資源のロックを行い、終了時にロックの解放ができれば、その仕組みは実現可能と考えています。 (シェルの異常終了時は、ロックが自動的に解放されることが望ましい) 上記のようなことをシェル(bash)で実現可能でしょうか。 bash単独での方法、もしくはbashからperl,C言語作成の実行モジュールを呼び出す方法でもかまいません。 (ちなみにperl(もしくはC言語作成のモジュール)単独では実現可能なことはわかっています)

  • shのシェルスクリプトの演算方法について・・・

    bashのシェルスクリプトについてもお聞きしたのですが、 その方法では演算ができない!ということになってしまいました・・・ こういうちょこっとしたところが違うのが嫌です・・・↓ bashの場合は ---------- bash$ a=1 bash$ a=$(( $a + 1 )) bash$ echo $a 2 ---------- となったのですが、shではエラーが出てしまいました・・・ また、shのスクリプトもbashのスクリプトもシェルスクリプトと呼ぶのでしょうか?

  • bashに詳しい方、教えて下さい![Shellプログラミングの質問です]

    下記のプログラムをkshで書いたのですが、これをbashに書き換えなくてはならなくなりました。kshならある程度分かるのですが、bashは全然経験が無いため困っています。bashに詳しい方、大変お手数で馬鹿な質問で恐縮ですが、どう書き換えたらbashで動くのか、ご教授願いたいと思います。 *シェルを実行したら、入力プロンプトが返ってきて、適当に入力していって、Enter keyを2回押すと、今まで入力したものが表示され、終了する。といった仕様です。 $ cat mtest #!/bin/ksh myvar=kjsdkdck i=0 while [[ -n $myvar ]] do read myvar?"Enter junk, return to exit: " myarray[$i]=$myvar (( i += 1 )) done j=0 h=1 while [[ -n ${myarray[$j]} ]] do print $h ${myarray[$j]} (( j += 1 )) (( h += 1 )) done $mtest Enter junk, return to exit: test1 Enter junk, return to exit: test2 Enter junk, return to exit: test3 Enter junk, return to exit: 1 test1 2 test2 3 test3 $

  • bashのシェルスクリプトの書き方

    macos x 10.5.5です。 あるコマンドを実行すると"y/n"を聞いてきます。コマンドラインから実行した場合は、単純にキーボードから"y"などと入力すれば済むわけですが、これをbashのシェルスクリプトでやる場合はどう書けば良いのでしょうか。尚、"y/n"に対する応答(キー入力)は常に"y"で構いません。 >hoge delete file1 -- hogeというコマンドを実行 >Are you sure ? ( enter y/n ) -- hogeが確認を要求 >y -- キーボードからyを入力 よろしくお願いします。

  • シェルの read で入力されなかったときの対処

    bashを使用しています。 キーボードから入力した文字列を検索するシェルスクリプトを作ってみたいのですが read -p "検索したい言葉を入力してください" hoge として実際実行した時に何も入力しないままエンターを押してしまうと改行されてCtrl+Cで強制的に抜けないといけない状態です。 このような場合はどうやって対処するのでしょうか?

  • シェルスクリプトbashについての質問

    #!/bin/bash # トップ画面 function TOPVIEW() { echo "1)クイズ開始" echo "2)このアプリを終了" echo "3)アプリについて" echo "4)クイズ正解率" while echo -n "1,2,3,4を選択してください:" read ANS do case $ANS in 1) echo "正解" break;; 2) echo "終了します";; 3) echo "クイズアプリです";; 4) echo "正解率は";; *) echo "答えは1,2,3,4で入力";; esac done } # 問題作成 function QUIZ01() { echo "問題文" echo "(a)答えa(b)答えb(c)答えc" while echo -n "答えをa,b,cで入力してください:" read ANS do case $ANS in a) echo "正解" break;; b) echo "はずれ";; c) echo "はずれ";; *) echo "答えはa,b,cで入力";; esac done } function QUIZ02() { echo "問題文" echo "(d)答えd(e)答えe(f)答えf" while echo -n "答えをd,e,fで入力してください:" read ANS do case $ANS in d) echo "正解" break;; e) echo "はずれ";; f) echo "はずれ";; *) echo "答えはd,e,fで入力";; esac done } 最初の選択でクイズ開始を選択すると問題文に移行、、 終了を選択すると終了できるようにしたいのですが、 設定がわかりません どなたか教えてください お願いします

  • BASHの入力待ち

    fig_0.gif~fig_30.gifの30個の絵をdisplayコマンドで表示させるbashプログラムを作りたいと思います。 キーボードでEnterを押すと次の絵に移動するようにしたく、以下のようなプログラムを作成しました。 しかし以下のプログラムではdisplayのウィンドウがアクティブになります。 キーボード入力で次へ進むためには端末を一度クリックする必要があります。 端末をアクティブにする方法はありますでしょうか? わかりにくい説明で申し訳ございませんが、ご存じのかたご回答よろしくお願いします。 #!/bin/bash for ( i=0; i<30; i++ ) do  display fig_${i}.gif &  echo -n "next ?> "  read INPUT  killall display done