Shell

如何在 posix shell 中使用 bash 樣式的 $() 語法?

  • March 2, 2022

我有這個基本命令: 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腳本。

您現在所擁有的是使用目前 shellcurl執行的,並將結果粘貼到準備好執行的表達式中。sh -c "..."``sh

試試這個,它將整個下載和執行推遲到sh

SOME_VAR='blabhablhaba' sh -c '$(curl -L https://run_script.sh)'

(您作為範例包含的 URL 存在缺陷,因為沒有遠端主機名。我假設這是因為它是佔位符範例。)

在所有情況下,您都應該知道您隱含地信任遠端系統不會向您發送惡意腳本。你也相信他們的安全嗎?

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