Shell中的几种符号
单引号
#单引号里面不会取变量($不会生效),不会转义
a='a'
b='$(a\")'
echo $b
$(a\")
双引号
#双引号会取变量($生效),能转义
a="test"
echo "$a"
test
倒引号
#倒引号表示执行命令
`dirname $0`#获得当前文件的路径,只有在shell脚本中执行才有意义
流程控制
if
if [[ expression_1 ]]; then
echo "condition 1"
elif [[ expression_2 ]]; then
echo "condition 2"
else
echo "condition else"
fi
for
for f in `ls`; do
echo $f
done
重定向
linux有三种特殊的文件描述符
- 0:标准输入(键盘)
- 1:标准输出(显示屏)
- 2:错误输出(显示器)
#2>/dev/null 文件“黑洞”
ls exist.sh not_exist.sh 1>success 2>fail
内置语法
getopts 获取命令后面的参数
while getopts "p:c:h" arg
do
case $arg in
p)
project_name=$OPTARG
;;
c)
cmd=$OPTARG
;;
*)
help
exit 1
;;
esac
done