【发布时间】:2020-04-16 13:59:48
【问题描述】:
我需要从 python 运行以下 shell 脚本:
AliasScript = "osascript -e 'tell application \"Finder\" to make alias at \
POSIX file \"" + dirAlbumName + "\" as alias to \
POSIX file \"" + dirName + "\" as alias'"
os.system(AliasScript + "&> /dev/null")
仅当dirAlbumName 和/或dirName 变量不包含任何元字符(或者它们是否称为特殊字符?)时才有效,例如\、' 或"。例如,如果 dirName = /\/\/\ !@#$%^&*()|?"'"" /\?\/ 会出现语法错误。
如何对这些变量进行外壳转义?我尝试根据从here 阅读的内容使用 shlex,但我无法让它工作。例如,我尝试了shlex.quote(dirName),但它不起作用。
编辑:
需要明确的是,这段代码将在循环中运行数百次,dirName 和 dirAlbumName 的值不同,所以我不能手动转义它们。
【问题讨论】:
标签: python macos terminal pycharm