参考http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80
http://c.biancheng.net/cpp/view/6994.html
https://github.com/qinjx/30min_guides/blob/master/shell.md
简介
shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。
shell脚本(shell script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell自身(如Windows Explorer扩展开发)。
Shell脚本类似于Windows的批处理和PowerShell基本
几种常见的Shell
Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等。bash是Linux标准默认的shell。
格式
#!/bin/bash
#your comment
your command list
第一行表示解释器类型,以#!开头
shell脚本中的注释采用#
除了第一行和注释,其他均为命令列表(含变量定义、分支语句等)
执行
需要先将文件修改成可执行
chmod +x filename
在该脚本所在目录下,输入 ./filename 即可执行该脚本。
定义变量
定义变量时,变量名不加美元符号($),如:
your_name="qinjx"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。除了显式地直接赋值,还可以用语句给变量赋值。
使用变量
只要在变量名前面加美元符号即可,如:
echo $your_name
if else-if else
if condition1
then
command1
elif condition2
command2
else
commandN
fi
判断文件、目录是否存在
#判断目录/myfolder
if [ ! -d "/myfolder" ]; then
mkdir /myfolder
fi
# -x 参数判断 $folder 是否存在并且是否具有可执行权限
if [ ! -x "$folder"]; then
mkdir "$folder"
fi
# -f 参数判断 $file 是否存在
if [ ! -f "$file" ]; then
touch "$file"
fi