シェルスクリプトを介してコマンドラインにテキストを追加する

シェルスクリプトを介してコマンドラインにテキストを追加する

他の端末を開くシェルスクリプトがあります。

端末を開いた後、端末から別のアプリケーションを手動で起動します。シェルスクリプトを使用して、端末のコマンドラインにテキスト(bin / binfileなど)を追加して自動化したいと思います。重要なのは、テキストだけを入力したいので、スクリプトを実行した後でもアプリケーションを起動するには、ターミナルでEnterキーを押す必要があることです。コマンドを自動化したくありません。それは可能ですか?

答え1

bashを使用すると仮定すると、1つのキー入力で目的のコマンドを出力するようにreadlineショートカットを設定して、近づくことができます。

export INPUTRC=`mktemp`
trap "rm -f $INPUTRC" EXIT
echo '"\eOP": "my command"' > $INPUTRC
xterm

INPUTRCは、readlineで使用される環境変数です。 $INPUTRCを開き、ここから設定を読み取ろうとします。

readline設定は"\eOP": "my command"マクロをF1キーにバインドします(私の端末に一連のASCIIエスケープ文字で表示されますmy command)。\eOP\e

今xtermでF1を押すとmy command

このトラップは、端末が閉じられた後に一時構成ファイルが消去されることを保証します。

(F1にバインドする正しいreadlineスペルは異なる可能性があるため、それ以外のものを使用する必要があります\eOP。すでに〜/ .inputrcがある場合は、生成する一時ファイルにそれを含めることができます。)

編集:以下のコメントに関してxfce4-terminal私に効果的でした。

export INPUTRC=`mktemp`
trap "rm -f $INPUTRC" EXIT
echo '"\eOQ": "my command"' > $INPUTRC
xfce4-terminal

そしてF1の代わりにF2を使用してください。

答え2

ラッパースクリプトを使用します。

k.shを待ちます。

#!/bin/sh
printf "$*"
read k
exec "$@"

次に、コマンドの前にこれを追加します。

waitk.sh ls -l

答え3

簡単な方法は、テキストをクリップボードバッファ(たとえば| pbcopy

それからCmd + v

関連情報