使用Shell进行编程
Shell是我们操作Linux的必备工具,使用Shell,我们可以进行对Linux系统的一些操作命令,而使用Shell编程,我们可以将命令封装在一个句段中。Shell是一种脚本语言,正确的使用它是使用Linux的必须技能。
一些操作
Linux系统拥有很多文本编辑工具,例如Vim和Emacs,这些工具可以在apt软件包中下载,我个人倾向使用Vim进行编辑。
首先我们使用vim新建一个文件:
#! /bin/bash
#display a line
echo "hello world!"
其中,第一句代表我们的使用环境是bash shell,而#后的语句是注释
第三句就是我们的主要程序,echo代表把参数传递给标准输出,也就是我们的屏幕
运行:(需要chmod为其增加可执行权限)
就可以看到经典的语句“hello world"
其他的基本Shell操作有:
变量替换符$
log="test"
echo $log
输出为 test (像很多脚本语言一样,shell不需要事先声明变量)
转义符\
log="test"
echo "the value of \$log is $log
输出为 the value of \$log is test ,可以看到,第一个¥没有被转义,因为在\之后,忽略了$的特殊含义
位置变量$0 $1 $2 ......
#! /bin/bash
echo "\$0 = $0"
echo "\$1 = $1"
echo "\$2 = $2"
echo "\$3 = $3"
这里的$0 代指存放脚本的位置,$1 2 3 代表将传入的参数
我将其保存为test3,接下来我们传入1 2 3(可以为任意值),运行:
可以看到,输入了三个参数,而输出如我们所料。
程序结构:
if结构
if 条件语句
then
条件正确,执行这里
elif
xxxxx
then
xxxxx
else
不满足,执行这里
fi
case结构
#这里传入一个参数
case "$1" in
x)
当参数为x时,执行这里
;;
y)
当参数为y时,执行这里
;;
*)
*)可以匹配任意字符串,当不为x ,y 时,执行这里
;;
esac
while与until结构
#注意,在shell中,0为真,而非0为假
whie 当条件为真,就执行(一般为判断语句)
do
xxxxx
done
until 条件为假,执行,直到条件为真跳出
do
xxxxx
done
私人定制
Linux中的shell可以为我们带来更多的便利,例如,我们使用rm命令时是没有删除提示的,这使得一些误操作无法被阻止,这时,我们可以设计一个相对安全的delete命令:(参考:《Linux从入门到精通》)
这个程序可以在我们删除时进行询问”are you sure to delete?",并且将要删除的文件移动到~/.trash中去,这样我们就可以恢复一些已经删除的文件。
当然,shell的用法还有许多,这章就回顾这些。在Linux的使用中善用Shell脚本,我们的操作就会更加丝滑与简洁。