目录
shell变量与 $
这两个均属于给变量赋值。
而对于上述变量赋值,出现了问题,原因是已经将QAQ赋值给了str,无法对qaq进行识别。所以在进行带有空格的语句赋值时,应该加上" "。
符号$的意思是读取该值的内容,如:
echo为显示的意思。即显示today这个值中的内容。
read命令
read命令让键盘中输入的字符赋值为该变量,在后续的语句之中能直接调用该变量。
也可以同时read赋值多个变量,如果输入个数大于变量个数,最后一个变量会取得余下的输入数。若小于则为空串,如图:
位置参数的作用
文件m1.c
文件m2.c
文件ex3
将ex3改为能够执行的文件
chmod +x ex3
执行脚本 ex3 m1.c m2.c
即将m1.c放入位置参数1 m2.c放入位置参数2 将他们用cat函数整合在一起,位置参数0已经为命令名即ex3,随后用wc -l计算并输出总共行数。
利用位置参数给定变量赋值
建立脚本ex5,如图:
解释:将位置参数1的文件的文件名(指针)赋值给n1,后面同理。而后面的cat $n1 $n2 $n3即为将参数为1,2,3的文件的文件内容进行整合,然后求其总共行数。
if语句
建立脚本ex9
pwd为显示当前目录,test -f file 判断该file文件是否存在,且为正规文件,用fi做完if的结尾。
建立脚本ex9_1
如果该文件为正规文件则打开它,如果为目录文件则进入该目录,并打开该目录下所有文件
通配符
建立脚本ex7
此处为` 并非 ’ ,在反斜号中表示命令的执行
date命令为看时间日期
who 为显示当前用户,而wc -l表示who命令所出现的行数。
测试语句
建立脚本ex10
if [ -f ex1 ] 的意思是与 if test -f ex1 一个意思。
此处要注意的是,在[ ]中,前括号之后,与后括号之前都应该加空格,并且在命令 -f 、ls- l、 echo、 后面应该都加上空格再加上被执行目录。
while语句
建立ex11脚本
while语句 后面使用的是[ ],在[ ]中写明条件,如上图传入一个或多个文件,他分别进行判断,直到判断结束,跳出循环。
建立ex12脚本
for语句
1、练习
即对于day来说,依次取这4个值并且进行显示
熟练掌握
for in语句
do done语句
2、建立ex13脚本
运行结果
将第一个参数传入dir中,如果dir是一个目录文件,则进入dir进行操作,将第二个参数传入了name中(这里我也不知道为什么传入了name),再对name文件进行判断,并执行相应操作。
函数
1、简单函数调用
创建文本ex14,如图
运行脚本
2、引用函数
创建脚本ex14_1,如图
运行脚本
此处要注意的是,以后再while后面的[ ]中记得双边都加上空格,对于count=$(( $count+1))必须有两个括号。
清除/var/log下的log文件
在含有/var的根目录下编写脚本
cat命令的使用
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
4.清空文件,比如要清空
/www/aaa.txt
cat /dev/null > /www/aaa.txt;
改良版:
真正意义上的脚本:
$UID中所表示的数为用户,当其值为0时,表示为root用户。
exit后面为返回值,返回值的取值范围为0~255.
-ne的意思是判断两者是否相等。
tail命令:tail -n filename > newfilename 将filenname文件最后n行保留到newfilename中,并且要记得更名。