我正在尝试将一些 shell cmd 传递到我的一个 python 脚本中,以便我可以将它们运行到主机上。但是,当我将它们传递到行中时,出于某种原因省略了 $。我怎样才能避免这种情况?
我使用解析器和设置是这样的:
parser = argparse.ArgumentParser(description='check size', add_help=True)
parser.add_argument('-c', "--cmd", dest="cmd",type=str, help="Command to run Ex: df -h /boot/|grep -i boot|awk '{print \$4}' 2>/dev/null ")
例如:这是使用反斜杠
python3.4 disk_file_check.py -e env -op chksize -c "df -h /boot/|grep -i boot|awk {'print \$4'} 2>/dev/null"
因为任何人都可以使用这个脚本,他们应该传递的只是他们想要使用的命令。但我希望它像这样工作:
python3.4 disk_file_check.py -e env -op chksize -c "df -h /boot/|grep -i boot|awk {'print $4'} 2>/dev/null"
但是当我这样做时,字符串变成了:
df -h /boot/|grep -i boot|awk '{print }' 2>/dev/null
正如你所看到的 $ 正在切断并给我错误的结果......
argparse 中的任何可能设置都可以做到吗?或者我应该尝试不同的方式?谢谢
谢谢。我想我不会通过命令行传递这个,因为 shell exapnd 它。感谢您指出了这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句