
次の基本コマンドがあります。
SOME_VAR='blabhablhaba' bash -c "$(curl -L https://run_script.sh)"
posixシェルを使用してこれをどのように実行できますか?失敗します。
SOME_VAR='blabhablhaba' sh -c "$(curl -L https://run_script.sh)"
sh: syntax error: unexpected "("
答え1
無効なタイプの引用符を使用している、またはダウンロードしているシェルスクリプトは、bash
POSIXsh
スクリプトではないスクリプトです。
今あなたが持っているのはcurl
処刑です。現在のシェルをクリックし、結果をsh -c "..."
実行する式に貼り付けますsh
。
これを試してみてください。完全なダウンロードと実行が延期されますsh
。
SOME_VAR='blabhablhaba' sh -c '$(curl -L https://run_script.sh)'
(たとえば、含まれているURLにはリモートホスト名がないため欠陥があります。これはプレースホルダの例であると仮定します。)
すべての場合において、リモートシステムが悪意のあるスクリプトを送信しないことを暗黙的に信頼することに注意してください。あなたも彼らの安全を信じていますか?