【发布时间】:2019-03-20 13:08:35
【问题描述】:
我需要为提交函数传递参数。当我通过
进行提交时./test.sh commit -m "first"
它并没有真正提交它。相信不知何故我没有在案例或函数中传递正确的参数参数。
这是脚本
#!/usr/bin/env bash
clone () {
git clone $1
}
commit () {
git commit $*
}
case $1
in
clone) clone $2 ;;
commit) commit $2 ;;
*) echo "Invalid Argument passed" ;;
esac
【问题讨论】:
-
@jww:有人可能会说是这样,但 OP 清楚地知道
$1、$2是什么,但不知道如何转换参数。涉及shift的欺骗在这里更合适 -
这个问题和你上一个问题很相似 - bash/shell script not reading second argument
-
@Inian - 是的,同意。 Grzegorz's answer 看起来不错,因为它谈到了争论如何以看似意想不到的方式传播。