初见shell
2016-07-21 10:17 不知道怎么取名字 阅读(163) 评论(0) 编辑 收藏 举报在写了一段时间的java后,发现要一次性执行多个java很麻烦,因此想到了用shell脚本去调用。但是因为之前没有学过shell,所以一切都是重新开始。在此,简单的记录下意思的基础性知识。
参数相关的命令:
#!/bin/bash echo "File Name: $0" echo "First Parameter : $1" echo "First Parameter : $2" echo "Quoted Values: $@" echo "Quoted Values: $*" echo "Total Number of Parameters : $#"
运行结果:
$./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2
参数的含义
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
shell 判断文件是否存在:
1 #!/bin/bash 2 3 folder="/var/www/" 4 file="/var/www/log" 5 6 #如果文件夹不存在,创建文件夹 7 if [ ! -d "/myfolder" ]; then 8 mkdir /myfolder 9 fi 10 11 # -x 参数判断 $folder 是否存在并且是否具有可执行权限 12 if [ ! -x "$folder"]; then 13 mkdir "$folder" 14 fi 15 16 # -d 参数判断 $folder 是否存在 17 if [ ! -d "$folder"]; then 18 mkdir "$folder" 19 fi 20 # -f 参数判断 $file 是否存在 21 if [ ! -f "$file" ]; then 22 touch "$file" 23 fi 24 # -n 判断一个变量是否有值 25 if [ ! -n "$var" ]; then 26 echo "$var is empty" 27 exit 0 28 fi 29 # 判断两个变量是否相等 30 if [ "$var1" = "$var2" ]; then 31 echo '$var1 eq $var2' 32 else 33 echo '$var1 not eq $var2' 34 fi