#navi(FAQ) カテゴリー: ネットワーク

plamo-3.xのリモートホストに対して ssh, scp, rsync, rsh などを実行すると,コマンドは正常に実行されますが、接続時に stty: standard input: Invalid argument と複数行表示されます.このメッセージを抑制できますか?

2005-03-21 22:59:54 (月)投稿
登録者: Plamodocs Project

ログインシェルとして /bin/bash を指定した場合(chshを参考にしてください.),この stty: standard input: Invalid argument がでるようです.
コマンドの実行自体は問題なくおこなえるので,気にしないでおくこともできますが,やはり気持ちのいいものではないでしょう.

このメッセージが出力されないようにするには,およそ次の 2 つの方法が考えられます.

  1. ~/.bashrc の次の個所に,「# これを追加」と書いてある行を追加します.
    ## 端末によるBackSpaceキーの調整
    if tty -s ; then     # これを追加
        stty erase '^?'
        case "$TERM" in
            kterm|xterm|sun)
                stty erase '^H'
                ;;
            #vt*)
            # stty erase '^H'
            # ;;
        esac
        stty werase '^W'
        stty stop undef
    fi            # これを追加
  2. ~/.bashrc の次の「# ここを変更」と示してある行頭を,stty から,tty -s && stty と次のように書き直します.
    ## 端末によるBackSpaceキーの調整
    tty -s && stty erase '^?'     # ここを変更
    case "$TERM" in
        kterm|xterm|sun)
            tty -s && stty erase '^H'  # ここを変更
            ;;
        #vt*)
        # stty erase '^H'
        # ;;
    esac
    tty -s && stty werase '^W'     # ここを変更
    tty -s && stty stop undef     # ここを変更

このように変更した後で,~/.bashrc を次のコマンドで読み込むと,変更が有効になります.

~$ source .bashrc

参考までに,1. の方法については,その後 plamo-ML 上で「bash 的に,この書き方でいいのだろうか?」といった議論がおこなわれ,tty コマンドを使うより,環境変数 PS1 が定義されているかどうかで判断するほうが良いだろうと言う意見が出ました.
この議論については, [plamo:21631] から続くスレッドを参照してください.

結論的に,netfort の松本徳真さんから plamo-3.3 の ~/.bashrc を修正した, bashrc.txt(bashrc サンプル) が提供されました.
内容は,オリジナルの .bashrc に今回の件を解消するコードを追加し,.tcshrc と比較しやすいように並びだけを変更したものです.
追加部分は,bashrc.txt の「# ← これを追加」と書かれている行です.

松本さんのご厚意で, bashrc.txt の自由な使用/再配布/改良の許可を受けていますので, bashrc.txt を取り込み,ファイル名を .bashrc と変更して使ってみてください.

SSH に限った場合として,山内さんから, [plamo:21689] という解もでています.


この件に関して追加情報などありましたら、以下にどうぞ;




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:40