记录一些常用的 Shell 语法

参数

文件接收参数

1
2
3
4
5
$ echo 'echo $1 $2' > test.sh
$ chmod +x test.sh
$ ./test.sh name age

name age

函数接受参数

1
2
3
4
main() {
echo $1 $2 # --> name age
}
main name age

判断

判断字符串相等

1
2
3
if [ $sysOS == "Darwin"  ];then
# do something
fi

判断字符串为空或不存在

1
2
3
4
5
6
ENV=$1

if [ ! ${ENV} ]
then
ENV=local
fi

判断是否有某个文件

1
2
3
if [ -f ~/.bash_profile  ]; then
# do something
fi

判断是否有某个目录

1
2
3
4
5
if [ -d ~/.oh-my-zsh   ]; then
# do something
else
# else do something
fi

case

1
2
3
4
5
6
7
8
9
10
11
case $ID in
debian|ubuntu|devuan)
# do something
;;
centos|fedora|rhel)
# do something
;;
*)
exit 1
;;
esac

其他

当前环境生效环境变量

1
export NODE_PATH=`pwd`/nodejs

执行某个文件

1
source ~/.bash_profile

03-16 13:54