AutoHotkeyマクロを使用していくつかのシェルコマンドを実行していますつまり
_^`::
SendInput set c=".cshrc-acheong"{ENTER}
SendInput set v=".vimrc-acheong"{ENTER}
SendInput foreach d ( /home/acheong /home/tcama /userhome/andrew.cheong ){ENTER}
SendInput if ( -e $d/$c ) source $d/$c{ENTER}
SendInput if ( -e $d/$v ) alias vim "vim -N -u $d/$v"{ENTER}
SendInput end{ENTER}
return
_
AutoHotkeyに慣れていない場合でも、問題はありません。シェルコマンドの複数の行を一度に貼り付けるのと同じです。多くの人は、各行の実行時にコマンドプロンプトが「非同期に」表示されることを確認しています。
stdin
を非表示(おそらくブロック)してから、入力(またはその出力)を表示せずに実行するコマンドまたはトリックはありますか?パスワードを入力するようなものです。
上記に関する判断は控えてください:先制的にいくつかのことを否認するには:
私はcsh
を選択して使用しません。はい、トップ10を読みました。
_/home
_に同じネットワーク共有をマウントしていない数百台のサーバーを使用しています。そのため、rsync
を使用して「マスター」をプッシュしています_.cshrc
_および_.vimrc
_個別のネットワーク共有ごとの場所に移動します。これにより、上記のキーボードマクロは、どこにいても、見つかったものを見つけてロードします。
---(更新
_stty -echo
_、、つまりを追加してみました
_^`::
SendInput stty -echo{ENTER}
SendInput set c=".cshrc-acheong"{ENTER}
SendInput set v=".vimrc-acheong"{ENTER}
SendInput foreach d ( /home/acheong /home/tcama /userhome/andrew.cheong ){ENTER}
SendInput if ( -e $d/$c ) source $d/$c{ENTER}
SendInput if ( -e $d/$v ) alias vim "vim -N -u $d/$v"{ENTER}
SendInput end{ENTER}
SendInput stty echo{ENTER}
return
_
ただし、プロンプトは引き続き表示されます。
(私は_$Prompt
_の設定を解除することを考えましたが、私の_.cshrc
_が行うことの1つは、正確に_$Prompt
_を置き換えることであるため気が進まないです。)
私はAutoHotKeyに精通していないので、そこで解決策が見つからない場合は、読み進めてください。
POSIXは read
コマンド を指定します。これにより、-s
でターミナルエコー(入力時に表示されるもの)を抑制しながら、入力行を取得できます。これもbashに組み込まれていますが、システムをチェックして、スタンドアロンとして存在するかどうかを確認することができます。
それ以外の場合、 ここを見て 、cshでstty
(別のスタンドアロン)を使用して同じことを実行できます。
stty -echo # turn echo off
# do your input
stty echo # turn echo back on
代替画面バッファーを使用すると、必要なものにかなり近づくことができます。
ほとんど(all?)ターミナルエミュレーターには、切り替えることができる2つの画面バッファーがあります。そのため、代替画面バッファーに切り替えてコマンドを実行してから、メインバッファーに切り替えます。
コマンドの前に次を実行するだけです。
tput smcup
そして最後に、実行します
tput rmcup
ただし、これでも画面にtput smcup
コマンドが表示されます。
コマンドを非表示にすることを考える唯一の方法は、コマンドにキーバインディングを追加することです( ESC+t)。 zsh
がこれを実行できることは知っていますが、csh
についてはわかりません。
tput
コマンドがない場合は、生のエスケープコードをエコーアウトできます。
PuTTYの場合、これは次のようになります。
echo -e '\e[?47h'
そして
echo -e '\e[2J\e[?47l'
mkfifo
双方向|pipe
2台のマシン間で、PuTTY端末への貼り付けに頼るのではなく書き込みます。ただし、PuTTYを使用する必要がある場合は、設定でフロー制御をオフにして、rawモードを使用する必要があります-stty raw
ホスト側で、PuTTYの設定でrawターミナルオプションを見つけます。