Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 美元、1美元和2美元是什么意思?_Linux_Bash - Fatal编程技术网

Linux 美元、1美元和2美元是什么意思?

Linux 美元、1美元和2美元是什么意思?,linux,bash,Linux,Bash,我的问题是关于bash程序的,它在这本关于编写树莓pi(bash,Python,C)的大书中 有一个示例程序可以展示if在bash中是如何工作的,但无论我们对该程序的描述读了多少遍,它似乎都无法正确地解释它的功能(我知道,如果我想在一本1000页的书中完整地介绍bash教程,这就是我来这里的原因) 下面是代码: #!/bin/bash if test $# -ne 2; then echo "You have to pass 2 arguments to the command"

我的问题是关于bash程序的,它在这本关于编写树莓pi(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
我知道,
-ne2
的意思是:不等于2,所以它检查
$\code>是否等于2,但我不明白它是做什么的(
$\code>)。->第一个问题

else
中,它会打印
$1
$2
,但我认为
$variablename
会打印该变量的值。整数怎么可能是变量?->第二个问题

是的,我在谷歌上搜索过,没有找到任何有用的东西(也许搜索不够?),这就是我来这里的原因

我将感谢任何形式的帮助,无论是自己阅读的链接,还是简短的解释。 提前感谢:)

$#
指的是在运行时收到的参数数量,而不是特定的参数<代码>$1
被执行脚本时命令行位置1中的任何内容替换。

$#
表示命令行参数或位置参数的数量


$1
$2
分别表示传递的第一个和第二个命令行参数

非常感谢!这很有帮助。这也是可以在手册页和静态网页中搜索到的东西。不确定这是否值得StackOverflow响应。如果您要使用
bash
,我强烈建议您阅读本手册!在终端中,
manbash
或在PDF文件中。