Shell

將多個命令粘貼到終端停止在使用者輸入

  • July 19, 2018

在使用者輸入的命令上將一些連續的命令粘貼到終端停止,例如:

read VAR
echo $VAR

或者

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

echo $VAR沒有被粘貼/執行。

但是,將所有命令放在一行上是可行的:

read VAR; echo $VAR

但是當有更多命令跟隨時,這不是首選。


為什麼會出現這種情況以及如何解決它?

我的案例是在服務文件中有一些重複出現的命令。

我當然可以編寫一個腳本,但這不是我打算做的,並且在只有讀取訪問權限的系統上可能是不可能的。

一個非常舒適的方法如下

只需在終端中輸入以下內容:

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

詳細說明

  1. 在您開始的終端中(

可選:按enter(僅出於格式化原因) 2. 現在您可以粘貼多行

例如:

echo hello

echo world

替代方案:您逐行鍵入/粘貼(用enter鍵完成每一個)。 3. 最後,鍵入 finalizing)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 ~ % 

引用自:https://unix.stackexchange.com/questions/457235