2011-02-27 157 views
0

我有一個bash腳本,它定義了一個包含*通配符的文件球體數組。從bash腳本執行python腳本時逃脫bash通配符?

該腳本執行一個python腳本傳遞每個globs作爲參數。

在命令行中,我可以引用整個glob,並且python很滿意。

在bash腳本中,如果我引用globs,python的os.path.realpath似乎與引用混淆 - 這些引用傳遞給腳本本身。

例如bash腳本:

BACKUP_PATHS=("/root/backups/db-dump-*" "/root/backups/*_backup.tar.bz2") 
for path in "${BACKUP_PATHS[@]}" 
do 
    /usr/local/bin/python2.7 /usr/local/bin/clean.py \'$path\' $MAX_FILES 
done 

蟒蛇:

os.path.realpath(path) # results in something like: /usr/local/bin'/root/backups/db-dump-*' 

我怎樣才能讓他們一起玩?

感謝

回答

2

代替\'$path\',使用"$path"。雙引號允許替換變量$path的內容,但是防止通配符擴展並確保路徑作爲單個參數傳遞。

+0

thankssssssssss – barry 2011-02-27 20:09:54