天天看點

linux腳本指令有空格,在shell腳本中使用空格執行動态建立的指令

我必須編寫一個腳本,生成并執行一個包含檔案名的可變數量參數的指令.這些檔案名可能包含空格,一切都必須正常,有或沒有空格.

例如,此生成的指令可能如下所示:

curl --data-urlencode "js_code@/tmp/some folder/data.txt" http://www.someurl.com

如果我使用寫死指令并執行它,所有運作正常,有空格和沒有空格.但是,如果我在字元串變量中建立指令文本,并執行字元串内容,則該指令似乎不會僅使用檔案的第一部分來考慮引号:

腳本(簡化,假設指令字元串是使用複雜規則建立的):

#!/bin/sh

#prepare

command="curl --data-urlencode \"param_value@/tmp/some folder/data.txt\" www.someurl.com"

#execute

$command

結果 :

$./test.sh

Warning: Couldn't read data from file ""param_value@/tmp/some",this makes an

Warning: empty POST.

curl: (6) Couldn't resolve host 'folder'

我嘗試了不同的東西,轉換引号樣式,使用像exec這樣的東西,但我無法讓它工作.

任何幫助,将不勝感激

謝謝

注意:我應該在Cygwin上添加所有這些測試.關于路徑文法可能很重要.