本随笔为Linux实验四,主要内容为Shell脚本编程的基本内容。
一:Shell变量基本用法及常用符号使用
①:将主提示符改为用户的主目录名
②:将字符串 DOS file c:>\$student\*赋值给变量 x,并显示出来
③:在 shell 命令终端输入 likes=(cosmos galaxy moon); likes=mars,然后使用 echo 分别显示以下表达式的值,并结合结果,写出表达式的作用。
显示数组中全部的非空元素,其结果为一个词;显示数组中全部的非空元素,其结果按空格分为多个数组元素;显示数组元素的个数;显示数组元素个数;显示下标为0的字符的长度;显示下标为0的字符的长度
④在shell命令终端输入name=Phoenix,然后使用echo显示表达式①,观察结果;然后输入命令unset name,再输入表达式①观察结果。结合两次结果,写出表达式的作用。① ${name:-hello}
给name一个默认值hello
⑤:
%%.*:删除第一个.及之后的内容
%.*:删除最后一个.及之后的内容
⑥:
#*/:删除第一个/及之前的内容
##*/:删除最后一个/及之前的内容
⑦:
二:shell脚本分析
①:
作用:将参数逆序输出
cmd="$cmd \$$count" : 拼接出echo $? ,其中?为现有的参数数量
count=`expr $count - 1` : 参数数量-1
eval $cmd : 执行cmd,包含其历史值
每次运行时循环执行count次
运行. ex1.sh god bless u 时,while 循环体第 1 次被执行时,第 8 行执行后变量 cmd 的值为 echo $3
②:
who | grep "^$1"
显示用户名,用第一个参数匹配其开头
line8—10行:向第一个参数所对应用户发送信息hello
③:
作用:将该目录下所有以.sh结尾的文件复制到添加了时间后缀的新文件中
④:
NL功能:读取,显示,行号自增
line14功能:等待从键盘上的输入,接收,然后显示,行号自增
line17-21功能:按照参数从前至后顺序,拼接显示其中的内容,行号也一直增长
三:shell脚本编写
①:
②:
③:
④:
⑤: