我想這樣的事情在bash:嵌套報價
alias foo='bar="$(echo hello world | grep \"hello world\")"; echo $bar;'; foo
預期輸出:你好世界
輸出繼電器:grep的:世界「:沒有這樣的文件或目錄
外引號必須是單引號,雙引號$ bar應該是空的。
T他接下來的引號必須是雙引號,單引號$()不會擴展。
內部引號可以是兩種類型的引號,但單引號不允許單引號內部。
如何實現此目的?
我想這樣的事情在bash:嵌套報價
alias foo='bar="$(echo hello world | grep \"hello world\")"; echo $bar;'; foo
預期輸出:你好世界
輸出繼電器:grep的:世界「:沒有這樣的文件或目錄
外引號必須是單引號,雙引號$ bar應該是空的。
T他接下來的引號必須是雙引號,單引號$()不會擴展。
內部引號可以是兩種類型的引號,但單引號不允許單引號內部。
如何實現此目的?
內$()
的東西,代表一個子shell,所以你被允許放在裏面
alias foo='bar="$(echo testing hello world | grep "hello world")"; echo "$bar"'
逃生的空間
alias foo='bar="$(echo hello world | grep hello\ world)"; echo $bar;'
這是一個有點不清楚是什麼「這樣的事情」的意思,但要實現什麼似乎是這裏的點最簡單的方法是一個簡單的函數:
foo() {
echo 'hello world' | grep 'hello world'
}
foo
各地$()
雙引號是沒有必要的:
alias foo='bar=$(echo hello world | grep "hello world"); echo $bar;'
foo
# Output:
hello world
是否非轉義雙引號不可能逃避報價,說我想做:'別名foo ='baz =「hello world」; bar =「$(echo hello world | grep \」$ baz \「)」; echo $ bar;'; foo' – Tyilo