【问题标题】:What do $? and $# stand for in Shell Script? [duplicate]$做什么?和 $# 在 Shell Script 中代表? [复制]
【发布时间】:2012-07-04 15:33:48
【问题描述】:

我有以下两段代码,我不太确定 $?和 $# 代表。请帮忙。

代码一

 #!/bin/bashUSERID="$1" 
 /bin/id $USERID 2>/dev/null
[ $? -eq 0 ] && echo "User found" || echo "User not found"

/bin/id -g $USERID 2>/dev/null
[ $? -eq 0 ] && echo "Group found" || echo "Group not found"    `


$ cat > mtable

代码二

#!/bin/sh
#
#Script to test for loop
#
#
if [ $# -eq 0 ]
then
echo "Error - Number missing form command line argument"
echo "Syntax : $0 number"
echo "Use to print multiplication table for given number"
exit 1
fi
n=$1
for i in 1 2 3 4 5 6 7 8 9 10
do
echo "$n * $i = `expr $i \* $n`"
done

谢谢

【问题讨论】:

    标签: bash shell posix


    【解决方案1】:

    查看bash 的手册页:

    $# 扩展为十进制的位置参数个数

    $?扩展到最近执行的前台管道的状态。

    【讨论】:

      【解决方案2】:

      $? 为您提供上一个执行命令的返回码。

      $# 为您提供给脚本的命令行参数的数量。

      所以,基本上 if 条件检查给定的参数数量是否正确。

      【讨论】:

        猜你喜欢
        • 2011-11-16
        • 2019-12-30
        • 1970-01-01
        • 1970-01-01
        • 2015-05-29
        • 2014-11-02
        • 2018-01-27
        • 1970-01-01
        • 2022-12-08
        相关资源
        最近更新 更多