ユーザー入力時に端末停止に複数のコマンドを貼り付ける

ユーザー入力時に端末停止に複数のコマンドを貼り付ける

一部の連続コマンドを端末に貼り付けると、ユーザーが入力したコマンドで停止します。例:

read VAR
echo $VAR

または

select VAR in 1 2 3; do break; done
echo $VAR

echo $VAR貼り付け/実行されていません。

ただし、すべてのコマンドを1行に入力すると機能します。

read VAR; echo $VAR

しかし、より多くのコマンドが続く場合、これは最初の選択ではありません。


なぜこれが起こり、どのように解決するのですか?

私のユースケースは、サービス文書に繰り返しコマンドがあることです。
確かにスクリプトを書くことはできますが、そうしたくないので、読み取り専用アクセス権を持つシステムでは不可能かもしれません。

ベストアンサー1

非常に快適な方法は次のとおりです。:

端末に次のように入力します。

( paste-your-multiline-script-here ) enter

詳細な説明:

  1. ターミナルから始まります。(

    オプション:クリックenter(フォーマットの場合のみ)

  2. これで複数行を貼り付けることができます

    たとえば、
    echo hello
    echo world

    代替案:1行ずつ入力/貼り付け(enter各行をキーで完了)。

  3. 最後に、ターミナルを入力して)もう一度クリックすると、貼り付けるか、enter入力した行全体が実行されます。

小さな作業例(一行ずつ貼り付け用enter:

anderson@tp ~ % (
\`subsh> echo hello
\`subsh> echo world
\`subsh> )
hello
world
anderson@tp ~ % 

小さな作業例(フルスクリプト貼り付け用):

anderson@tp ~ % (
\`subsh> echo hello
echo world
\`subsh> )
hello
world
anderson@tp ~ %

書式を無視する小さな作業例(フルスクリプト貼り付け用):

anderson@tp ~ % (echo hello                                                
echo world)
hello
world
anderson@tp ~ % 

おすすめ記事