Shell编程

参考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


你可能感兴趣的:(Shell编程)