shell常用变量,各种$

1. $n:代表列,n为数字

$0代表该脚本名称,$1-$9代表输入的第1-9个参数,10以上的参数需要用大括号,${11}

2. $#:获取所有输入参数的个数,在循环中比较常用

3. $*和$@

两个都是代表命令行中的所有参数

只有在被双引号“ ”包含时,才会有区别,$*把所有参数作为一个整体,$@把每个参数分别作为一个独立个体

写一个for循环的脚本如下:

[kevin@hadoop100 datas]$ cat eg.sh 
#! /bin/bash

# 没有加双引号
for i in $*
do
	echo "*1 is $i"
done

echo"......................."

for j in $@
do
	echo "@1 is $j"
done

echo"......................."

# 加双引号
for n in "$*"
do
	echo "*2 is $n"
done

echo"......................."

for m in "$@"
do
	echo "@2 is $m"
done

执行脚本

[kevin@hadoop100 datas]$ chmod 777 eg.sh
[kevin@hadoop100 datas]$ ./eg.sh A B C
*1 is A
*1 is B
*1 is C
./eg.sh: line 8: echo.......................: command not found
@1 is A
@1 is B
@1 is C
./eg.sh: line 15: echo.......................: command not found
*2 is A B C
./eg.sh: line 22: echo.......................: command not found
@2 is A
@2 is B
@2 is C

可以看出当$*和$@没加双引号时,都表示所有命令行参数;

当加了双引号后,$*把所有命令行参数作为一个整体,以“$1 $2 $3...”的形式输出所有参数;

$@中的每个参数都看成是独立的,所以“$@”中有3个参数,就会循环打印3次;以“$1” “$2” “$3”...的形式输出所有参数。

4. $?

变量值为0,证明上一个命令执行正确,非0证明上一个命令执行不正确

5. $变量(字母)

引用自定义字母变量

ps:自定义变量中有空格需要用单引号或者双引号括起来

6. $[运算式]

[kevin@hadoop100 datas]$ S=$[(4+5)*10]
[kevin@hadoop100 datas]$ echo $S
90

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值