linux - 无法读取 bash 脚本中的第二个参数

标签 linux bash shell unix

我需要为提交函数传递参数。当我通过

进行提交时
./test.sh commit -m "first" 

它并没有真正 promise 它。以某种方式相信我没有在大小写或函数中传递正确的参数参数。

这是脚本

#!/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

最佳答案

bash 会像这样处理参数:

./test.sh commit -m "first" 

0: ./test.sh
1: commit
2: -m
3: first

所以你的 "first" 实际上是参数 $3

关于linux - 无法读取 bash 脚本中的第二个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52828021/

相关文章:

Linux 读写权限仅通过应用程序

android - android设备上二进制文件损坏的可能原因是什么

regex - 如何删除匹配单词之间的空格?

linux - 比较两个变量之间的数据并生成报告到文本文件中

c# - 从 C# .Net Core 项目正确调用外部 C 库方法*在 Linux 上*

bash - bash中的Makefile变量自动完成

bash - sed 或 awk 删除具有匹配正则表达式的行和以下行

PHP 从 shell_exec 中删除隐藏字符

linux - 为什么我的命令在 shell 脚本中不起作用,但在 bash 中起作用?

c++ - GoogleMock 在 Linux 上不是线程安全的吗?