Shell 变量

文章目录

  • Shell 变量
    • Summary
      • 变量
      • 注释
    • Practice
      • 普通变量
        • `unset`
        • 定义静态变量 `readonly`
        • 命令返回值赋给变量 \`命令\` 或 $(命令)
      • 参数变量
      • 预定义变量

Shell 变量

Summary

变量

定义 说明 举例 备注
普通变量
= 定义 A=“test” 注意不能有空格
unset 撤销 unset A
readonly 静态变量 readonly A=“test”
`命令` 赋给变量命令返回值 RESULT=`ls -l /home`
$(命令) 赋给变量命令返回值 MY_DATE=$(date)
参数变量
$0 第一个参数
$1 第二个参数
$* 所有参数
$@ 所有参数
$# 参数个数
预定义变量
$$ 当前进程的PID
$! 后台运行的最后一个进程PID
$? 最后一次执行的命令的返回状态
Other
./test1.sh & & 以后台方式运行
sh ./**.sh 没有权限的执行方式 echo “MY_DATE=$MY_DATE”

注释

定义 说明
# 单行注释
:< 多行注释
:<<!
echo ""
MY_DATE=$(date)
echo "MY_DATE=$MY_DATE"

Practice

普通变量

unset

#!/bin/bash
A="test"
echo "A=$A"
unset A
echo "A=$A"

[root@tt tmp]# ./test.sh
A=test
A=

定义静态变量 readonly

#!/bin/bash 
readonly A="test" 
echo "A=$A" 
unset A 
echo "A=$A" 

[root@tt tmp]# ./test.sh
A=test
./test.sh: line 4: unset: A: cannot unset: readonly variable
A=test

命令返回值赋给变量 `命令` 或 $(命令)

#!/bin/bash
RESULT=`ls -l /home`
echo "RESULT=$RESULT"
echo ""
MY_DATE=$(date)
echo "MY_DATE=$MY_DATE"

[root@tt tmp]# ./test.sh
RESULT=total 2680
-rw-r–r--. 1 root root 10131 Oct 30 2017 root

MY_DATE=Mon May 18 09:27:39 UTC 2020
[root@tt tmp]# ^C

参数变量

#!/bin/bash
echo "$0 $1 $2"
echo "$*"
echo "$@"
echo "parameter count: $#"

./test.sh 100 200
100 200
100 200
parameter count: 2

预定义变量

test.sh

#!/bin/bash
echo "$$"
echo "lastpid:$!"
./test1.sh &
echo "new lastid: $!"
echo "$? -----------------"

test1.sh

#!/bin/bash
echo "test.sh running....."

[root@tt tmp]# ./test.sh
13195
lastpid:
new lastid: 13196
0 -----------------
[root@tt tmp]# test.sh running…

你可能感兴趣的:(Linux)