linux shell脚本中的特殊用法

shell中的@符号

$@, ${@:2}, ${@:3:1}

新建test.sh文件,运行./test.sh 1 2 3 4 5

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

# 输出全部变量
echo $@ # 1 2 3 4 5

# 输出第2及之后的变量
echo ${@:2} # 2 3 4 5

# 从第3个开始输出1个变量
echo ${@:3:1} # 3

shell中的$()和``

这两个命令都是用来命令替换的,其中嵌入的命令会直接执行

1
2
3
4
#!/bin/bash

dir=$(pwd) # /data4/test
dir2=`pwd` # /data4/test

shell中的${}

${}用于变量替换,他可以输出变量,例如${your_name}输出your_name的值

一些特殊变量定义和用法

变量设定方式 str没有设定 str为空 str设定且为为非空
var=${str:-expr} var=expr var=expr var=${str}