一.Shell之变量/系统变量

  • 变量赋值
    shell中变量无需声明,出现空格需要加“,命名与c语言一致,只支持整型和字符型。

var=value
${ var=value}

一个栗子用于区分不同:

$ cat shelldemo.sh 
#!/bin/bash 

echo ${var0="world"}
var=hello
echo var
echo $var
echo ${var="hello world"}
echo $var
$ ./shelldemo.sh 
world
var
hello
hello
hello
  • unset 清空变量

unset [变量名]

  • 其它赋值模式
    除=之外,还可用+、?、:?、:=、:-来赋值,通过以下栗子说明区别。
$ echo $var

$ echo ${var?value}
bash: var: value
$ echo ${var:?value}
bash: var: value
$ echo ${var:=value}
value
$ echo ${var:=change?}
value
$ unset var
$ echo ${var:-value}
value
$ echo $var
$ echo ${novar+value}

一些常见系统变量
1.PWD和OLDPWD

$ echo $PWD
/home/jin1ming/linux_shell
$ echo $OLDPWD
/home/jin1ming

2.PATH

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/local/go/bin

3.HOME

$ echo $HOME
/home/jin1ming

4.SHELL

$ echo $SHELL
/bin/bash

5.USER与UID

$ echo $USER
jin1ming
$ echo $UID
1000

6.PPID(父进程号)

$ echo $PPID
7071

7.$$(当前进程号)

$ echo $$
8695

8.PS1,PS2(命令提示变量)

#我在其它地方省略了一级命令提示符
[jin1ming@ML linux_shell]$ echo $PS1
\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\]
[jin1ming@ML linux_shell]$ echo $PS2
>

9.IFS(域分隔符)
默认为空格

$ echo $IFS


    原文作者:靳一鸣
    原文地址: https://www.jianshu.com/p/40c3d2710d58
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞