这是开始使用 linux bash shell 脚本的快速参考备忘单。
入门
hello.sh
1 2 3
| #!/bin/bash VAR="world" echo "Hello $VAR!"
|
执行脚本
变量
1 2 3 4 5 6 7
| NAME="John" echo ${NAME} echo $NAME echo "$NAME" echo '$NAME' echo "${NAME}!" NAME = "John"
|
注释
1 2 3 4 5 6 7
| # 这是一个内联 Bash 注释。
: ' 这是一个 非常整洁的 bash 注释 '
|
多行注释使用 :'
打开和 '
关闭
参数
表示 |
描述 |
$1 … $9 |
参数 1 … 9 |
$0 |
脚本本身的名称 |
$1 |
第一个参数 |
${10} |
位置参数 10 |
$# |
参数数量 |
$$ |
shell 的进程 id |
$* |
所有参数 |
$@ |
所有参数,从第一个开始 |
$- |
当前选项 |
$_ |
上一个命令的最后一个参数 |
见:特殊参数
函数
1 2 3 4
| get_name() { echo "John" } echo "You are $(get_name)"
|
见:函数
条件句
1 2 3 4 5
| if [[ -z "$string" ]]; then echo "String is empty" elif [[ -n "$string" ]]; then echo "String is not empty" fi
|
见:条件句
大括号扩展
表示 |
描述 |
{A,B} |
与 A B 相同 |
{A,B}.js |
与 A.js B.js 相同 |
{1..5} |
与 1 2 3 4 5 相同 |
见:大括号扩展
Shell 执行
1 2 3 4
| echo "I'm in $(PWD)"
echo "I'm in `pwd`"
|
见:命令替换
Bash 参数扩展
语法
代码 |
描述 |
${FOO%suffix} |
删除后缀 |
${FOO#prefix} |
删除前缀 |
${FOO%%suffix} |
去掉长后缀 |
${FOO##prefix} |
删除长前缀 |
${FOO/from/to} |
替换第一个匹配项 |
${FOO//from/to} |
全部替换 |
${FOO/%from/to} |
替换后缀 |
${FOO/#from/to} |
替换前缀 |
子字符串
表示 |
描述 |
${FOO:0:3} |
子串 (位置,长度) |
${FOO:(-3):3} |
从右边开始的子串 |
Length