Linux脚本中$#、$0、$1、$@、$*、$$、$?

1.首先介绍一下这个几个参数的意义:

  $#:传入脚本的参数个数;

  $0:  脚本自身的名称;  

  $1:  传入脚本的第一个参数;

  $2:  传入脚本的第二个参数;

  $@: 传入脚本的所有参数;

  $*:传入脚本的所有参数;

  $$:  脚本执行的进程id;

  $?:  上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常;

    其中$@与$*正常情况下一样,当在脚本中将$*加上双引号作为“$*”引用时,此时将输入的所有参数当做一个整体字符串对待。比如输入参数有a b c三个参数,则“$*”表示“a b c”一个字符串。

2.测试

  测试脚本test.sh

#!/bin/bash
echo "脚本名称: $0"
echo "第一个参数: $1"
echo "第二个参数: $2"
echo "参数个数: $#"
echo "输入的参数:$*"
for key in $*
do
    echo $key;
done
for key in "$*"
 do
    echo $key
done

echo "输入的参数:$@"
for key in $@
 do
    echo $key;
done
for key in "$@"
 do
    echo $key;
done
echo "进程id: $$"
echo "状态: $?"

3.执行脚本

  sh test.sh a b

脚本名称: test.sh
第一个参数: a
第二个参数: b
参数个数: 2
输入的参数:a b
a
b
a b
输入的参数:a b
a
b
a
b
进程id: 8682
状态: 0
posted @ 2019-01-19 10:39  曲项向天歌  阅读(28538)  评论(2编辑  收藏  举报