引用文件: . +空格+文件名
重定向:
输出command > file
输出command >> file
n > file
n >> file
n >& m
输入command < file
n <& m
<< tag
函数:
1. fun(){函数体}
2. 函数返回值在调用该函数后通过 $fun 来获得
3. 参数:$n表示第n个参数,当n>=10时,需要使用${n}来获取参数。
流程控制:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
while condition
do
command
done
case 值 in
值1)
command1
command2
...
commandN
;;
值2)
command1
command2
...
commandN
;;
esac
运算符
# 算术运算符:
# 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2
# 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边
# 在 MAC 中 shell 的 expr 语法是:$((表达式))
`expr $a + $b`
a=$b
[ $a == $b ]
[ $a != $b ]
数组
# 用括号来表示,元素用"空格"符号分割开
array_name=(value1 value2 ... valuen)
# 使用下标来定义数组
array_name[0]=value0
# 读取数组
${array_name[index]}
# 使用@ 或 * 可以获取数组中的所有元素
${my_array[*]}
传递参数
在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
变量
# 定义变量
your_name="runoob.com"
# 使用变量
# 用一个定义过的变量,只要在变量名前面加美元符号即可
your_name="qinjx"
echo $your_name
echo ${your_name}
# 使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变
myUrl="https://www.google.com"
readonly myUrl
# 使用 unset 命令可以删除变量
unset variable_name