$# 的变量是什么?

$# 的变量是什么?

我正在学习 Linux 入门,遇到了一些我不明白的事情:“以下命令已被执行:

set 10 20 30 40 50

输入变量的值$#

我理解的是变量$1=10 $2=20等等。那么会$#是什么呢?

答案1

假设有以下 bash :

#!/bin/bash
echo $#

你运行如下:./arg.sh g jt t uu
它返回 4,4 是你传递给 shell 的参数数量。

研究 shell 脚本的参数是非常好的。
假设我有以下程序用法: --value PATTERN -o PS_COMMAND_OPTIONS
那么我可以调查如下代码:

if [ "$1" = "--value" -a "$3" != "-o"  -o "$1" != "--value" -a "$3" = "-o" -o ! $# -eq 4 ]; then
    help;
    exit;
fi;

答案2

我也在做 Linux 入门。我明白它意味着参数总数。你可以这样使用它:

#!/bin/bash
if [ $# = 2 ]
    then echo "Your name is $1 $2"
else
    echo "You need two arguments"
fi

相关内容