$#,$ 1和$ 2是什么意思?

时间:2016-04-25 12:36:01

标签: 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"
    #argument / parameter, whatever you prefer
    exit 1
else
    echo "Argument 1: $1, argument 2: $2"
fi

我理解,-ne 2表示:不等于2,因此检查$#是否等于2,但我不明白它的作用({{1} })。 - >第一个问题

$#中打印else$1,但我认为$2会打印该变量的值。整数如何成为变量? - >第二个问题

是的,我谷歌了,并没有找到任何使用(也许没有足够的搜索?),这正是我在这里的原因。

我会感激任何帮助,无论是自己阅读的链接,还是简短的解释。 在此先感谢:)

2 个答案:

答案 0 :(得分:1)

var cnv = document.createElement('canvas'); var ctx = cnv.getContext('2d'); var img = new Image(); img.src = 'https://i.imgsafe.org/73d1273.png'; img.onload = function(){ var pattern = ctx.createPattern(img, 'repeat'); // featurePoly is ol.Feature(new ol.geom.Polygon(...)) featurePoly.setStyle(new ol.style.Style({ fill: new ol.style.Fill({ color: pattern }) })); }; 是指在运行时接收的参数数量,而不是特定参数。执行脚本时,$#被命令行中位置1中的任何内容替换。

答案 1 :(得分:1)

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

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