shell

290 阅读1分钟

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