我有以下问题:
我有一个python脚本的多个bash别名: python脚本使用带有两个arugemnts的arg-parse,一个是可选的。
testing.py -i value1
testing.py -i value1 -e value2
alias test1=' ./testing.py -i $1'
这可以按预期工作
alias test2=' ./testing.py -i $1 -e $2'
这不起作用!
最终,想从命令行执行此操作:
test2 value1 value2
我搜索过bash函数,并不完全确定它是否能解决我的问题。 我已经尝试了很多方法来逃避,qoute,黑客攻击它,重新安排..等等..没有骰子
能够将bash $2
中的第二个默认参数传递给python脚本的-e argparse
选项会非常有用。
任何帮助将不胜感激..
此致,
谢谢!
答案 0 :(得分:0)
别名是简单的前缀扩展。他们不知道他们的论点是什么,也不能运行条件逻辑。
test1() { ./testing.py -i "$1"; }
test2() { ./testing.py -i "$1" -e "$2"; }
......或者更好的是,一个处理这两种情况的函数:
testfunc() { ./testing.py ${1+ -i "$1"} ${2+ -e "$2"}; }
答案 1 :(得分:0)
(或者更准确地说,你可以,但不是你想要的)
test1 value1
转换为
./testing.py -i value1
但
test2 value1 value2
转换为
./testing.py -i -e value1 value2
因为$1
和$2
是空字符串(最有可能)。
简单的解决方案是创建bash功能
test2() {
./testing.py -i "$1" -e "$2"
}