シェル初心者です。分かりづらい文章であればすみません。
コマンドを文字列にして、変数に格納し、
その変数をバッククォートで囲んで実行しようとしています。
すると、定義していないところにコーテーションが付いてしまい、
コマンドの構造がおかしくなって実行できません。
該当のソースコード
bash
1CMD='su - user -c "command option"' 2aaa=CMD 3`eval echo '$'${aaa}`
ややこしいソースで申し訳ありませんが、
aaa=CMDを行って、実行したいのです。
発生している問題・エラーメッセージ
% sh -x test.bash を、実行すると以下の文が表示されます。 + CMD='su - user -c "command option"' + aaa=CMD ++ eval echo '$CMD' +++ echo su - user -c '"command' 'option"' + su - user -c '"command' 'option"' su: 無効なオプション -- 'd'
「su: 無効なオプション -- 'd'」となっているのは、
実際に実行しているコマンドのoptionに「-d」を設定しているからです。
試したこと
test.bashの一行目を、
「CMD="su - user -c "command option""」
でやってみましたが、ダメでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/27 05:13