ファイル名を含むさまざまな引数を持つコマンドを生成して実行するスクリプトを作成する必要があります。これらのファイル名には空白が含まれていてもかまいません。例えばシェルスクリプトにスペースを入れて動的に作成したコマンドを実行する
、このコマンドは次のように見えるかもしれ生成:私はハードコーディングされたコマンドを使用して、それを実行した場合
curl --data-urlencode "[email protected]/tmp/some folder/data.txt" http://www.someurl.com
それはすべてで、スペースなしで、細かい動作します。しかし、文字列変数にコマンドテキストを作成し、文字列の内容を実行すると、ファイルの最初の部分だけを使用して引用符を使用しないようです。
スクリプトコマンド文字列は)複雑なルールを使用して作成されます。
#!/bin/sh
#prepare
command="curl --data-urlencode \"[email protected]/tmp/some folder/data.txt\" www.someurl.com"
#execute
$command
結果:
$ ./test.sh
Warning: Couldn't read data from file ""[email protected]/tmp/some", this makes an
Warning: empty POST.
curl: (6) Couldn't resolve host 'folder'
は私がexecのようなものを使用して、引用符のスタイルを切り替え、別のものを試してみましたが、私は仕事にこれを取得could'nt 。
すべてのヘルプは
おかげ
注意をいただければ幸いです:私はこのすべてのテストは、Cygwinの上で行われる追加する必要があります。パス構文に関しては重要です。
"\" とスペースを交換してみ – spicavigo
@spicavigoが既に無い結果とすることをしようとしました:/ – Shtong
あなたには、いくつかを交換することができます一重引用符のためのdbl-quotes、つまりcommand = "curl --data-urlencode 'param_value @/tmp/some folder/data.txt' www.someurl.com" ...幸運を祈る! – shellter