shell脚本 $0-$n $* $@ $# $? $$

各命令详解
1.$0-$n	:表示脚本或函数的参数。$0 是脚本的名称,$1 到 $n 是位置参数,每个对应一个传递给脚本或函数的参数。
2.$*	:表示所有传递给脚本或函数的参数。它将所有位置参数作为单个字符串显示。
3.$@	:表示所有传递给脚本或函数的参数。与$* 不同,它将每个位置参数作为独立的字符串显示。
4.$#	:表示传递给脚本或函数的参数个数。它代表了位置参数的数量。
5.$?	:表示上一个命令的退出状态。如果说上一个命令成功执行,则$? 的值为0,否则为非零值。
6.$$	:表示当前Shell脚本或进程的进程ID(PID)。

可以运行下面的脚本自己感受一下(各种区别就一目了然了):

#!/bin/bash
echo "脚本名称: $0"
echo "所有参数作为单个字符串: $*"
echo "所有参数作为独立字符串: $@"
echo "参数个数: $#"
echo "上一个命令的退出状态: $?"
echo "当前进程ID: $$"

#echo "$@和$*比较"
count=0
for arg in "$@"
do
        echo $arg
        count=$[ $count + 1 ]
done
echo "\$@ 一共循环了 $count 次"
#
count=0
for arg in "$*"
do
        echo $arg
        count=$[ $count + 1 ]
done
echo "\$* 一共循环了 $count 次"

shell脚本 $0-$n $* $@ $# $? $$_第1张图片

你可能感兴趣的:(服务器,linux,shell)