linux shell编程的知识要点。 本系列针对Bash Shell,其他的比较流行的Shell还有Korn shell (ksh)和"Tenex C shell" (tcsh)等。
一,简单过程
二,命令
三,变量
要给变量赋值时,可以这么写:变量名=值, 等号两边均不能有空格存在。
四,管道/重定向
将所有查找到的文件打一个包,脚本:
复制代码代码示例:
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('): tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
说明:
* 单引号‘’:功能则最强。当你把字符串用单引号括起来时,外壳将忽视所有单引号中的特殊字符。
* 双引号“”:双引号的功能最弱。当你把字符串用双引号括起来时,外壳将忽略字符串中的空格,但其他的字符都将继续起作用。 双引号在将多于一个单词的字符串赋给一个变量时尤其有用。 * 反斜杠\:反斜杠的功能和单引号一样,只是反斜杠每次只能使一个字符发生转义,而不是使整个字符串发生转义。
五,特殊字符
$HOME 用户自己的目录。
$ PATH 执行命令时所搜寻的目录。 $TZ 时区。 $MAILCHECK 每隔多少秒检查是否有新的邮件。 $ P S 1 在外壳命令行的提示符。 $ P S 2 当命令尚未打完时,外壳要求再输入时的提示符。 $ M A N PATHman 指令的搜寻路径。 ? 有些变量在执行外壳程序时系统就设置好了,并且你不能加以修改: $ # 存储外壳程序中命令行参数的个数。 $ ? 存储上一个执行命令的返回值。 $ 0 存储外壳程序的程序名。 $ * 存储外壳程序的所有参数。 $ @ 存储所有命令行输入的参数,分别表示为(“$ 1” “$ 2” . . . )。shift 命令用来将存储在位置参数中的当前值左移一个位置。 $ $ 存储外壳程序的P I D。 $ ! 存储上一个后台执行命令的P I D。
六,关键字
复制代码代码示例:
if [ expression ]
then commands elif [ expression2 ] then commands else commands fi
2)条件,条件之间可以使用&& 和||
-b file 若文件存在且是一个块特殊文件,则为真
-z string 若string长度为0,则为真
int1 -eq int2 若int1等于int2,则为真
!expr 若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
3)case
case string1 in
str1 ) commands ; ; str2 ) commands ; ; * ) commands ; ; esac
4)for
for var1 in list
do commands done
5)while
while expression
do statements done
6)until
until expression
do commands done
7)select
select menuitem [in list_of_items]
do commands done
七,子函数
fname () {
shellcommands } 调用fname [parm1 parm2 parm3 ...] (责任编辑:IT) |