Bashの二重引用符

Bashの二重引用符

2つの二重引用符の間に引数を送信する必要があるプログラムを呼び出すbashファイルを作成しようとしています。

私のファイルの内容を見てください。

#!/bin/bash
echo ./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config &
./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config &

echo部分は必要なコマンドを正確に印刷しますが、実行すると(次の行)台無しになります。

この問題をどのように解決できますか?

ありがとうございます!

これが私が呼び出す方法です:

./yowsup/yowsup-cli demos --s 9999999999 "my parameter" -c yowsup/config

エコ結果:

./yowsup/yowsup-cli demos --s 9999999999 "my parameter" -c yowsup/config

通話結果:

demos: error: unrecognized arguments: parameter

エコー結果をコピーして貼り付けます。

INFO:yowsup.demos.sendclient.layer:Message sent

ベストアンサー1

echo出力でこれを表示するには、コマンドで引用符をエスケープする必要がありますが、実際のコマンドではエスケープしないでください。

#!/bin/bash
echo ./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config &
./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config &

$2複数の単語を含む分割を防ぐために、実際のコマンドに引用符が使用されます。

おすすめ記事