gpt4 book ai didi

bash - 将命令行参数解析/传递给 bash 脚本 - "$@"和 "$*"之间有什么区别?

转载 作者:行者123 更新时间:2023-11-29 08:54:31 28 4
gpt4 key购买 nike

我正在使用 bash 脚本从任何位置调用和执行 .jar 文件,而无需不断输入其显式路径。

.jar 需要在执行时指定额外的可变参数,因为这些参数可以是任何东西,所以它们不能硬编码到脚本中。

总共有 3 个变量,第一个指定 .jar 将执行的 2 个操作中的第一个,第二个指定执行此操作的目标文件,第三个指定名称操作要创建的文件。

我目前使用的脚本是:

#!/bin/bash  
java -jar "C:\path\to\file.jar" "$1" "$2" "$3"

我对 bash 脚本知之甚少,但在寻找另一个解决我的问题(现已解决)的时候,我遇到了 "$@""$*"引用命令行参数时。做更多的搜索把我带到了这个网站:How To Wiki: How to read command line arguments in a bash script ,但我无法找到关于这些论点的任何可靠信息,而不必费力地研究大量超出我理解范围的高级 bash 编程。

既然我一直在喋喋不休,我的问题就相对简单了:

我可以用 "$@""$*" 替换 "$1""$2""$3" 吗,如果可以的话哪个更好用?

如果有的话,这些命令之间的区别是什么?

最佳答案

"$@"对应"$1""$2""$3""$*"对应 "$1 $2 $3" 你似乎不需要。

没有引号,没有区别,都对应$1 $2 $3

关于bash - 将命令行参数解析/传递给 bash 脚本 - "$@"和 "$*"之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16649467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com