Shell
如何在 posix shell 中使用 bash 樣式的 $() 語法?
我有這個基本命令:
SOME_VAR='blabhablhaba' bash -c "$(curl -L https://run_script.sh)"
如何使用 posix shell 執行此操作?這失敗了:
SOME_VAR='blabhablhaba' sh -c "$(curl -L https://run_script.sh)"
sh: syntax error: unexpected "("
要麼你使用了錯誤的引號,要麼你下載的 shell 腳本是一個
bash
腳本而不是 POSIXsh
腳本。您現在所擁有的是使用目前 shell
curl
執行的,並將結果粘貼到準備好執行的表達式中。sh -c "..."``sh
試試這個,它將整個下載和執行推遲到
sh
,SOME_VAR='blabhablhaba' sh -c '$(curl -L https://run_script.sh)'
(您作為範例包含的 URL 存在缺陷,因為沒有遠端主機名。我假設這是因為它是佔位符範例。)
在所有情況下,您都應該知道您隱含地信任遠端系統不會向您發送惡意腳本。你也相信他們的安全嗎?