Shell
1:shell(计算机的壳层)
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。如linuxshell。
2:同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
主要来说shell语言
1:Shell编程跟 java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux的 Shell 种类众多,常见的有:
BourneShell(/usr/bin/sh或/bin/sh)
BourneAgain Shell(/bin/bash)
CShell(/usr/bin/csh)
KShell(/usr/bin/ksh)
Shellfor Root(/sbin/sh
2:打开文本编辑器(可以使用vi/vim 命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php 写 shell脚本,扩展名就用 php好了。
./test.sh #执行脚本
注意,一定要写成./test.sh,而不是test.sh,运行其它二进制的程序也一样,直接写test.sh,linux系统会去 PATH 里寻找有没有叫test.sh 的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在 PATH 里,你的当前目录通常不在PATH 里,所以写成test.sh 是会找不到命令的,要用./test.sh 告诉系统说,就在当前目录找。
3:shell定义变量
name="percy"正确
name= "percy"不正确,不能随意加空格
4
Linux之父Linus对BASH的描述:
“我下载了一个叫BourneShell的外壳程序。它是UNIX的初始外壳程序之一,可以从互联网上免费下载,名字来源于一个难听的双关语。编写该外壳程序的家伙名叫波恩(英文中的“忍受”或“出生”之意――译注),所以这个程序就叫做“Bourne-Again-Shell”(“再次忍受或再次降生外壳程序”――译注),或一般被称为BASH(bash的英文意为“重击”――译注)。”
0:开始shell编程
(shell里面很重要的一点就是空格是代码逻辑的一部分,所以不能随意空格的)
只读变量:
myUrl="http://www.w3cschool.cc"
readonlymyUrl
删除变量
unsetvariable_name
1:shell的三种变量
1)局部变量局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2)环境变量所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3)shell变量shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
2:单双引号
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。
3:接受参数
我们可以在执行Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n代表一个数字,1为执行脚本的第一个参数,2为执行脚本的第二个参数,以此类推……0为文件名
4:
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk 和 expr, let,expr最常用。
expr是一款表达式计算工具,使用它能完成表达式的求值操作。下面是expr用法。
表达式和运算符之间要有空格,例如2+2 是不对的,必须写成2 + 2,这与我们熟悉的大多数编程语言不一样。
完整的表达式要被` ` 包含,注意这个字符不是常用的单引号,在Esc 键下边。