大数据之Shell:Shell中的特殊变量

目录

  • 1.特殊变量$n
    • 1.基本语法:
    • 2.案例实操
  • 2.特殊变量$#
    • 1.基本语法
    • 2.案例实操
  • 3.特殊变量:$* $@
    • 1.基本语法
    • 2.案例实操
  • 4.特殊变量:$?
    • 1.基本语法
    • 2.案例实操

1.特殊变量$n

1.基本语法:

$n:n为数字,$0代表该脚本名称,
$1- 9 代 表 第 一 到 第 九 个 参 数 ; 十 以 上 的 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9 代表第一到第九个参数; 十以上的参数,十以上的参数需要用大括号包含,如 9;{10};

2.案例实操

(1)输出该脚本文件名称、输入参数1和输入参数2 的值

[jinghang@hadoop101 datas]$ touch parameter.sh 
[jinghang@hadoop101 datas]$ vim parameter.sh
#!/bin/bash
echo "$0  $1   $2"
[jinghang@hadoop101 datas]$ chmod 777 parameter.sh
[jinghang@hadoop101 datas]$ ./parameter.sh cls  xz
./parameter.sh  cls   xz

2.特殊变量$#

1.基本语法

$#:获取所有输入参数个数;

2.案例实操

(1)获取输入参数的个数

[jinghang@hadoop101 datas]$ vim parameter.sh
#!/bin/bash
echo "$0  $1   $2"
echo $#

[jinghang@hadoop101 datas]$ chmod 777 parameter.sh
[jinghang@hadoop101 datas]$ ./parameter.sh cls  xz
parameter.sh cls xz 
2

3.特殊变量:$* $@

1.基本语法

$ * :这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体;
@ : 这 个 变 量 也 代 表 命 令 行 中 所 有 的 参 数 , 不 过 @:这个变量也代表命令行中所有的参数,不过 @@把每个参数区分对待;
$ *和$ @都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$ 1 $ 2 …$ n的形式输出所有参数。

2.案例实操

[root@eshop-detail03 shell]# vi for.sh
#!/bin/bash
for i in $*
do
      echo "ban zhang love $i "
done
for j in $@
do
        echo "ban zhang is for me  love $j"
done
[root@eshop-detail03 shell]# bash for.sh cls xz bd
ban zhang love cls 
ban zhang love xz 
ban zhang love bd 
ban zhang is for me  love cls
ban zhang is for me  love xz
ban zhang is for me  love bd

当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 2 … 2 … 2n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “ 2 ” … ” 2”…” 2n”的形式输出所有参数

[root@eshop-detail03 shell]# vi forTest.sh
#!/bin/bash
for i in "$*"
#$*中的所有参数看成是一个整体,所以这个for循环只会循环一次
        do
                echo "ban zhang love $i"
        done

for j in "$@"
#$@中的每个参数都看成是独立的,所以“$@”中有几个参数,就会循环几次
        do
                echo "ban zhang love  $j"
done
[root@eshop-detail03 shell]# chmod 777 forTest.sh
[root@eshop-detail03 shell]# bash forTest.sh cls xz bd
ban zhang love cls xz bd
ban zhang love cls
ban zhang love xz
ban zhang love bd

4.特殊变量:$?

1.基本语法

$?:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

2.案例实操

(1)判断helloworld.sh脚本是否正确执行

[jinghang@hadoop101 datas]$ ./helloworld.sh 
hello world
[jinghang@hadoop101 datas]$ echo $?
0

你可能感兴趣的:(大数据系列一)