1 关键字

readonly

相当于C中的const,readonly将变量设为只读模式,任何针对他们的赋值都是错误的

1
2
3
$readonly var=123
$var=345
bash: var: readonly variable

unset

删除变量

1
2
3
4
5
6
7
8
unset var_name 删除变量var_name
unset -v first middle last 删除其他变量
unset -f fcn 删除函数
$tunset=123
$echo $tunset
123
$unset tunset
$echo $tunset

shift

用来截去来自列表的位置参数,从左侧开始,一旦执行shift,$1的初始值就会永远消失,取而代之的是$2的旧值,依次类推,$#的值也会依次减1
shift也可以带一个参数,表示一次截取的个数

1
2
3
4
5
6
7
8
9
10
$cat shell.sh 
#!/bin/bash
echo "${1}"

shift

echo "${1}"
$./*.sh 123 456
123
456

set

设置新的位置参数

1
2
3
4
5
6
7
8
9
$set qq ww ee
$echo "${1}"
qq
$echo "${0}"
bash
$echo "${2}"
ww
$echo "$#"
3

export

添加变量到变量导出列表,即如果在shell中执行子shell,该变量将作为环境变量从而在子shell中变得可以使用。

1
2
3
4
5
6
7
8
9
10
$cat shell.sh 
#!/bin/bash
echo "$NEWENV"

$NEWENV=123
$./shell.sh

$export NEWENV
$./shell.sh
123

exit

提前结束标本

  • 0 正常退出
  • 0 错误类型返回

test

test 和[ ]既是一个linux缺省安装的软件命令,又是一个shell关键字。两者的功能都是一模一样的