Bash Shell 入门指导手册


Bash Shell要完整深入的掌握,需要花一定的时间,但是有时候工作需要,需要快速的掌握其基本用法并编写简单的程序来满足项目的需要,那么您就可以看看下面的文章,否则没必要花时间在下面的文字上。

首先要澄清的是,这里不是要对shell 脚本编程作详细的研究,正如本文标题所指出的,这是一篇介绍bashshell 脚本编写语法的快速指南手册。如果你想深入研究,那么建议你买一本关于shell脚本编程的书 ;-) 。好,现在开始我们的学习,开始用停表计时吧!
正文:
常见的环境变量:
$PATH - 为可执行程序设置查找路径,与msdos下的$PATH 变量类似。
$HOME - 用户的本地目录(home).
$MAIL - 保存用户设置的mail投递路径。
保存了一串 在命令行中用于 字符分隔 的字符 组成的字串。这个字串通常包含了空格,制表符,换行符。要查看之,你要做一个octal dump 的操作 如下:

$ echo $IFS | od -bc

PS1 and PS2 - 第一顺序提示符和第二顺序提示符(Primary and secondary prompts). PS1 默认设为 $ , PS2 设置为 '>' . 查看PS2可以通过如下命令:
$ ls |
然后按回车。

$USER - 用户登陆名。
$TERM - 终端类型标识。有时必须为编辑器设置正确的终端标识,以便其正常工作。
$SHELL - 登陆时可通过此查看shell 的类型.
注意:要查看以上变量的值,只要简单地用 echo 命令 加 $变量名就行了。例如:

$ echo $USER
ravi

就得到了$USER 的值。

bash shell 编程规则
1) 编写的脚本首行必须为:
#!/bin/bash
#井号,后跟!叹号,接着是shell的路径。这个语句能够告诉解析器这是一个shell脚本,同时指定shell的路径。
2)执行脚本前,先为脚本赋执行权限:

$ chmod ugo+x your_shell_script.sh

3)把脚本以.sh后缀命名。这让人知道这是一个shell脚本。这不是必须的,但是这是规范,没错,规范。

条件语句
if
if 语句-对条件命令进行判断然后决定流程的执行。
蓝色的字必要的。红色的则是可选的。
语法:

if condition_is_true
then
execute commands
else
execute commands
fi

if 条件可以是多路选择(分支结构)。这样可以对多条件进行判断。
if condition_is_true
then
execute commands
elif another_condition_is_true
then
execute commands
else
execute commands
fi

例子:

if grep "linuxhelp" thisfile.html
then
echo "Found the word in the file"
else
echo "Sorry no luck!"
fi

if 的搭档- test命令
test 是shell的一个内置命令。test对右边的操作数进行判断。返回true或false.为此,test 用特定的操作符来作条件判断,如下所示:

关系型操作符
-eq Equal to等于
-lt Less than小于
-gt Greater than大于
-ge Greater than or equal to大于等于
-lt Less than小于
-le Less than or equal to 小于等于

文件相关的测试:
-f file 存在且为常规文件,则为真
-r file 文件存在且可读,则为真
-w file 文件存在且可写,则为真
-x file 文件存在且可执行,则为真
-d file 为文件夹,则为真
-s file 文件存在且不为零则为真

字符串测试:
-n str True if string str is not a null string
-z str True if string str is a null string
str1 == str2 True if both strings are equal
str1 != str2 True if both strings are unequal
str True if string str is assigned a value
and is not null.

上面的意思是:
-n str 如果str非空则为真
-z str 如果str为空则为真
str1 == str2 如果两个字串相等则为真
str1 != str2 如果两个字串不等则为真
str 如果str有赋非空值则为真。

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容