(1)shell简介
shell可以理解为一种命令语言,也可以理解为一种程序设计语言。还可以认为它是用c语言编写的一个程序。shell可以用./ 文件名来运行。但是切记不要用root权限来运行shell。shell是一种脚本语言,那么就必然有shell的解释器来解释这种脚本,然后shell才能正确的运行。
常见的shell有bash/sh/ash...我们一般常用的事sh文件结尾的。
(2)来看一个简单的shell
#!/bin/sh
echo "Hello world!"
Hello world!
#! 第一行表明shell的解释器. 第二行打印输出一个字符串
(3)变量的使用
VAR1="a"
VAR1="b"
VAR2="b"
echo "VAR1=${VAR1} VAR2=$VAR2"
其中变量在使用的时候前面都要加$ 。{}的作用时区分变量在使用时候不要和后面的变量连到一起。“” 双引号中的内容 如果有运算符 或者$ 都是可以打印出来的。
VAR1=b VAR2=b
当然变量还有一些特殊的字符
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
(4)命令语法
CURRENTPATHCMD=`pwd`
echo "CURRENTPATHCMD = $CURRENTPATHCMD"
命令语法使用`` 这种符号,表示输出当前所在的文件的路径
CURRENTPATHCMD = /Users/zhengwei/Desktop/xcodecommand/10StaticLibrary
(5)运算符和c语言类似 算术运算符 逻辑运算符 比较运算符
(6)字符串比较
ISVAILDPATH="abc"
RIGHT="abc"
if [ $ISVAILDPATH == $RIGHT ]
then
echo "string is equal"
exit 1
fi
string is equal
注意这里的if语句,if then 以及 fi结束符。同时还要注意exit1 退出当前shell
"" 双引号中的内容 如果有运算符那么都要进行运算,如$
'' 单引号中的就是 一些英文字符,没有什么特殊的含义
`` 斜单引号 表示其中的是一些 命令行运算符
(7)数组的使用
NAME[0]="a"
NAME[1]="b"
echo "First Name: ${NAME[0]}"
First Name: a
(8)if case 语句
if语句前面已经介绍了,这里就不多说了。这里介绍下case
case $ISVAILDPATHin
"ab")
echo"ab"
;;
"abc")
echo"abc"
;;
esac
abc
(9)for 循环
for loopin 1 2 3
do
echo "The value is: $loop"
done
The value is: 1
The value is: 2
The value is: 3
Hello(){
echo "Hello world!"
}
Hello
Hello world!