bash是许多Linux平台内定的shell。
其名字来源于最初为Unix写bash脚本的作者Steve Bourne。
1.历史命令 history 上下键 .bash_history
2…命令与文件补全 TAB键
3.命令别名设置 alias alias lm=‘ls -al’
程序示例:文件名为 hello.sh,目录为/home/wxhd
1 #! /bin/bash
2 # Filename : hello
3 echo "Hello World! “
执行时,首先查看当前用户是否对此文件具有执行权限,如果没有,则需要使用chmod命令来修改,然后执行。


每个用户登录系统都可以获得一个bash shell,例如:每个人都能使用bash执行mail命令获取邮件。

Bash是如何得知你的邮箱是哪个文件?
需要变量来帮忙。
变量:让某一个特定字符串代表不固定的内容。 y=a+b


注意:bash不能在等号两侧留空格。






程序示例:字符串操作符
[wxdh@主机名]$ name=”hello”
[wxdh @主机名]$ echo $name ${var:-”world”}!
hello world!
[wxdh @主机名]$ echo $name ${var:+”world”}!
hello !
[wxdh @主机名]$ echo $name ${var:=” wxdh”}!
hello wxdh!

bash可以使用[ … ]结构或test命令测试复杂条件。
格式为:
[ expression ] 或 test expression
注意:左括号后和右括号前空格是必须的语法要求。
返回一个代码,表明条件为真还是为假,如果返回0则为真,否则为假。






程序示例:对输入的不同后缀的文件做不同的处理。
#! /bin/bash
for filename in "$@"; do
case $filename in
*.jpg ) exit 0 ;;
*.tga ) echo “$filename is a tga file”;;
*.xpm ) echo “$filename is a xpm file” ;;
*.pcx ) echo “$filename is a pcx file”;;
*.tif ) echo “$filename is a tif file”;;
*.gif ) echo “$filename is a gif file”;;
* ) echo "procfile: $filename is an unknown graphics file."
exit 1 ;;
esac
done
function fname() {
commands commands
}
fname [ parm1 parm2 parm3 … ]

程序示例:函数输入参数示例:
程序示例:函数输入参数示例:
[wxdh@主机名]$ testfunc () {
>echo "$# parameters“
>echo "$@“
>} [wxdh @主机名]$ testfunc
0 parameters
[wxdh @主机名]$ testfunc a b c
3 parameters
a b c
[wxdh @主机名]$ testfunc a "b c"
2 parameters
a b c

程序示例: 函数输出参数。
function myfunc(){
local myresult='some value'
echo "$myresult"
}
result=$(myfunc) # or result=`myfunc` (此处为反引号)
echo $result
结果:输出“some value”。