周五老师在一开始为我们解答了printf函数的一些遗留问题,在这里我想把它记录下来加深记忆。
显示的换行问题: 在练习printf函数的时候我发现,在$符号之后直接打string,那么之前给string赋值的时候如果语句里面有空格,那么打印的时候语句会换行。如果想避免这一问题发生可以在$string外加上双引号把要显示的内容括起来,这样就可以完整地显示出一行语句。之后紧接着老师又带我们练习了字符串的拼接,长度显示和分割。它们分别是这样操作的:
引用字符串的值,并将多个字符串的值作为新的字符串赋给新 的变 量,即str=“$string1 $string2”如要显示字符串的长度,输入lenth=${#string}即可而字符串的分割则为nstr=${string:a:b},即把字符串string从第a个之后开 始截取b个字符赋给新的变量。
Shell的三大语句功能型语句、说明型语句、结构分支语句
(1)说明型语句
以#开头的语句,至行末均为说明型语句,说明型语句不解释执行,即注释
说明型语句的位置可以在程序中的任何位置,可以放在执行语句之后,从#开始的部分到末行。
(2)功能型语句
系统命令,自写程序
(3)结构型语句
多路分支语句,循环语句,循环控制语句,测试语句,条件语句
之后老师着重讲了一些结构型语句
条件测试语句
test 测试语句
[ 条件测试语句 ]:注意[]中的空格!!!
文件测试
-e file 是否存在
-d file 是否是目录
-f file 是否是文件
-r file 是否可读
-w file 是否可写
-x file 是否可执行
整数测试
-eq:是否相等
-ne:是否不等
-gt: 是否大于
-ge: 是否大于等于
-lt: 是否小于
-le: 是否小于等于
if语句
(1) if [ 条件 ]
then
命令
fi
(2) if [ 条件 ]
then
命令
else
命令
fi
case语句
case 值 in
值1)
命令
;;
值2)
命令
; ;
*)
命令
;;
esac
其中,| 为多重选择,?为任意一个字符,*为任意多个字符
for循环
for 变量名 in 单词表
do
命令表
done
变量名依次取单词表中的各个单词,每取一次单词,就执行一次。
while语句
语法结构
while 命令或表达式
do
命令表
done
网友评论