$#、$1 和 $2 是啥意思? [复制]
Posted
技术标签:
【中文标题】$#、$1 和 $2 是啥意思? [复制]【英文标题】:What do $#, $1 and $2 mean? [duplicate]$#、$1 和 $2 是什么意思? [复制] 【发布时间】:2016-08-18 20:32:20 【问题描述】:我的问题是关于 bash 程序的,它在这本关于编程树莓派(bash、Python、C)的大书中。
有一个示例程序来展示 if 如何在 bash 中工作,但是无论阅读多少次程序的描述,它似乎都无法正确解释它是什么确实(我知道如果我想要一本 1000 页的书里的完整 bash 教程,这太过分了,这就是我来这里的原因)
代码如下:
#!/bin/bash
if test $# -ne 2; then
echo "You have to pass 2 arguments to the command"
#argument / parameter, whatever you prefer
exit 1
else
echo "Argument 1: $1, argument 2: $2"
fi
我明白,-ne 2
的意思是:不等于 2,所以它会检查 $#
是否等于 2,但我不明白它的作用($#
)。 -> 第一个问题
在else
中,它会打印$1
和$2
,但我认为$variablename
会打印该变量的值。整数怎么可能是变量? -> 第二个问题
是的,我用谷歌搜索并没有找到任何有用的东西(可能搜索不够?),这正是我在这里的原因。
我将不胜感激任何形式的帮助,无论是我自己阅读的链接,还是简短的解释。 在此先感谢:)
【问题讨论】:
这在你可以搜索的手册页和静态网页中也很容易找到。不确定这是否值得 *** 响应。 如果您打算使用bash
,我强烈建议您阅读手册!在终端中,man bash
或 Bash Reference Manual,在 PDF 文件中。
【参考方案1】:
$#
是指运行时接收到的参数个数,而不是具体的参数。执行脚本时,$1
被命令行中位置 1 中的任何内容替换。
【讨论】:
非常感谢!这有帮助。【参考方案2】:$#
表示命令行参数或位置参数的个数
$1
和$2
分别表示传递的第一个和第二个命令行参数
【讨论】:
以上是关于$#、$1 和 $2 是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章