2017-01-14 43 views
2

這是一個bash腳本練習,我似乎無法弄清楚。我試圖打印出標準的「價值」,並且只將其作爲輸出。問題是你必須使用!!命令,它執行前一個命令。例如:如何用bash腳本打印字符串「value」!命令

echo "value" 
!! 
echo "value" 
value 

是我運行這兩個命令時的輸出。問題是它也會打印命令的字符串文字。我怎樣才能得到它,所以只有「價值」打印到標準輸出?

+1

你的意思只是最後一個命令的執行結果(或)最後一個命令的結果? – Inian

+0

正如@Inian指出,你的價值可能是一個變量?例如'echo「$ SHELL」'? – Zlemini

回答

3

我想我明白你想要做什麼,你要執行的命令:

$ echo "value" 

然後使用歷史擴展(最後命令!!,一個字標誌(最後字$),然後修改p打印但不執行該命令)

$ !!$:p 
"value" 

如果需要刪除引號,則可以使用替代和全球修飾符:

$ !!$:p:gs/"// 
value 

如果這不是你在找什麼,只是讓我知道,我很高興與你進一步合作。

+0

您當然可以省略第一個命令的引用(它仍然可以正常工作),然後您將不需要替換表達式修飾符。這就是說 - 我不知道這個功能,它是一個非常酷的,所以我很高興你使用它,並允許我學習它:-) – Guss