我有一个bash脚本,它定义了一个包含*通配符的文件globs数组。
该脚本执行一个python脚本,将每个globs作为参数传递。
在命令行上我可以引用整个glob,而python对它很满意。
在bash脚本中,如果我引用globs,python的os.path.realpath似乎会与引号混淆 - 引用会传递给脚本本身。
e.g。 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-*'
我怎样才能让他们一起玩?
由于
答案 0 :(得分:2)
而不是\'$path\'
,请使用"$path"
。双引号允许替换变量$path
的内容,但会阻止通配符扩展并确保将路径作为单个参数传递。