大数据之Shell编程(一) Shell变量

1.Shell中的变量

Shell中的变量分为系统变量用户变量,可以通过set命令查看有哪些变量可以使用
系统变量比如:$HOME $PWD $SHELL $USER等等

2.变量的定义

变量=值 (例如STR=abc) 注意:=两边不能含有空格
变量一般使用大写,当然不是硬性规定

双引号和单引号区别:双引号仅仅将空格等脱意,而单引号会将所有的特殊字符脱意

>>> STR=abc
>>> echo "hello $STR"
>>> hello abc
>>> echo 'hello $STR'
>>> hello $STR

可以使用unset撤销变量

>>> unset STR

可以使用readonly声明只读变量

>>> readonly B=2  # 声明静态变量,不能进行unset操作,使用频率极低

可以使用export将一个变量提升为环境变量,提供给其它的Shell使用

>>> export JAVA_HOME=/user/java

3.将一个命令的返回值赋予一个变量

  • A=`ls -al` 使用反引号将命令包裹
  • 上面的等同于 A=$(ls -al)
>>> A=`wc -c helloworld.sh`
>>> echo $A
>>> 90 helloworld.sh
>>> B=$(wc -c helloworld.sh | cut -d ' ' -f1) # cut表示已' '分割去除第一个参数(f1)
>>> echo $B
>>> 90

4.Shell中的特殊变量

  • $? 表示上一条命令退出的状态(0 表示成功 ,非0表示失败 ,范围为0~255)
  • $$ 表示当前进程编号
  • $0 表示当前脚本的名称
  • $n 表示位置变量(n表示数字,n>=1)
  • $# 表示变量的个数
  • $*和$@都表示参数列表

$和$@的区别
"$
"表示"$1 $2 .... $n"
"$@"表示"$1" "$2" "$3"
也就是添加引号后$*的会是一个字符,他会将所有的参数进行连接,而$@不会

>>> ls
>>> echo $?
>>> 0
原文地址:https://www.cnblogs.com/wuqinghua-blog/p/10492929.html