関数内で参照するとエラーが発生します。

関数内で参照するとエラーが発生します。

command予想される動作を取得するには、変数をどのように作成する必要がありますか?

#!/bin/bash

function f ( )
{
    echo "$2"
}
command="f --option=\"One Two Three\" --another_option=\"Four Five Six\""
$command

f --option="One Two Three" --another_option="Four Five Six"

最初の呼び出しは間違っていますが、2番目の呼び出しは正しいです。

$> ./test.sh 
Two
--another_option=Four Five Six

答え1

BASH FAQ項目#50:「コマンドを変数に入れようとしていますが、複雑なケースは常に失敗します!」

重要な要約:配列を使用してください。

command=(f --option="One Two Three" --another_option="Four Five Six")
"${command[@]}"

関連情報