如何制作可以下单的网站,网站开发语言怎么看,南昌网站建设模板网络公司,好订单网服装外发加工文章目录题目一题目描述代码实现关于$#的有关内容实测本程序的作用题目二题目描述代码实现注释关于argc、argv关于read函数关于文件描述符关于write函数本程序的作用题目三题目描述代码实现实测关于grep命令关于read命令题目四题目描述代码实现关于test命令实测题目一
题目描述…
文章目录题目一题目描述代码实现关于$#的有关内容实测本程序的作用题目二题目描述代码实现注释关于argc、argv关于read函数关于文件描述符关于write函数本程序的作用题目三题目描述代码实现实测关于grep命令关于read命令题目四题目描述代码实现关于test命令实测题目一
题目描述
请给下面的shell程序加注释并说明程序的运行结果。 代码实现
#!/bin/bash
#bash script programming
if test $# 0 # 参数个数为0没有给出参数
thenls -l|grep ^d # 寻找并显示当前目录中以d开头的字符串即目录文件
else # 参数个数不为0给出了参数for idols -l $i|grep ^d # 寻找并显示给出的目录中以d开头的字符串即目录文件done
fi关于$#的有关内容
$# 表示命令行上参数的个数但不包括shell脚本名本身 详情请参考shell预先定义的特殊变量 实测
当给出参数 / 时 当给出参数 home 时 当给出参数 . 时(. 即为当前目录) 当不给出参数时 本程序的作用
我们会发现不给参数时执行结果与给出参数 . 时执行结果一致也就是说本程序的作用是 没有给出参数时寻找并显示当前目录中以d开头的字符串即目录文件 给出参数时寻找并显示给出的目录中以d开头的字符串即目录文件 题目二
题目描述
分析程序的功能以及运行结果在代码后添加注释。 代码实现 注释
参数小于2输出“you forgot the enter a filename”
退出并报错
以只读方式打开参数1其权限为0644并将返回值赋值给fd1
创建一个文件在参数2其权限为0644并将返回值赋值给fd2
从fd1中读取字节数为512的内容到buf缓冲区并将返回值赋值给n
将buf中字节数为n的内容写到fd2中直到n不大于0
关闭fd1fd2 关于argc、argv
argc表示参数数量argv则是保存参数的数组argv[0] 指向程序运行的全路径名argv[1]是第一个参数argv[2]是第二个参数以此类推…… 关于read函数 关于文件描述符
很多函数都会用到这个东西这个东西其实就跟我们的学号一样是为了方便引用某文件而存在的其类型一般为int比如一个文件叫test碰巧还有一个文件叫test于是我们在引用他们时如果“叫”他们的名字往往容易两个一起“回应”你所以我们将他们分别描述为01、02那么在需要引用他们的时候就方便多了。 关于write函数 本程序的作用
将fd1中的内容全部复制到fd2中 题目三
题目描述
编写一个shell脚本检查给定的用户是否登陆系统。 代码实现
read -p 请输入用户名 user
if who|grep -qw $user
thenecho $user login
elseecho $user not login
fi实测 关于grep命令
本题中用到了grep命令的参数-q,-w
grep -w 只匹配整个单词而不是包含一部分单词的字符串
(如grep -w cmy 目标文件 只会匹配‘cmy’而不匹配‘cmypangle’这种包含cmy的字符串)
grep -q Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. 中文意思为安静模式不打印任何标准输出。如果有匹配的内容则立即返回状态值0。
不带-q是这样的 不带-w是这样的 关于read命令
本题中用到了read命令的参数 -p
read -p 用于给出提示符p是prompt的缩写即由这个开关项给出提示信息。
例如本题中回车后屏幕会显示
请输入用户名
该语句之后输入的内容就会被保存到use变量中了 题目四
题目描述
编写一个shell脚本判断文件是不是字符设备文件如果是将其拷贝到 /dev 目录下。 代码实现
if [[ -c $1 ]]
thencp $1 /dev
elseecho This file is not a character device file
fi关于test命令
为了方便就直接用老师的PPT截图了 至于cp命令……emm就是很常规的用法这里就不说了~ 实测 字符设备咱也不知道咋搞就不搞复制的情况了~