How to check for the existence of a second argument
本问题已经有最佳答案,请猛点这里访问。
我需要更新我在处理Git时使用的bash函数:
1 2 3 4 5 6 7 8 | push() { a=$1 if [ $# -eq 0 ] then a=$(timestamp) fi # ... do stuff } |
但我不知道这条线是怎么工作的
1 | if [ $# -eq 0 ] |
我需要检查第一个参数,然后检查第二个参数。
所以有2个if语句。
我怎么更新这个?这条线路怎么用?
1 | if [ $# -eq 0 ] |
这里的条件语句使用
为了检查两个参数,可以将该行更改(或添加)如下:
1 | if [ $# -eq 2 ] |
您可以创建一个小脚本来研究当您使用不同数量的参数调用函数时,
[push.sh":"的内容]
1 2 3 4 5 6 7 8 9 10 | push() { echo $# } echo"First call, no arguments:" push echo"Second call, one argument:" push"First argument" echo"Third call, two arguments:" push"First argument""And another one" |
如果将其放入脚本并运行,您将看到如下内容:
1 2 3 4 5 6 7 | -> % ./push.sh First call, no arguments: 0 Second call, one argument: 1 Third call, two arguments: 2 |
这说明EDOCX1的值(0)包含为函数提供的参数数量。
可以添加到脚本中的
最后,您可能希望使用以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 | a=$1 b=$2 if [ $# -lt 1 ] then a=$(timestamp) fi if [ $# -lt 2 ] then b=$(second thing) fi |