1.将下列bash代码改写为功能等价的代码,正确的是:
if test -w errfile
then
cat errfile >> $LOGFILE
rm errfile
fi
编号 | 选项 |
---|
A | [ -w errfile ] && { cat errfile >> $LOGFILE;rm errfile;} |
B | if test -w errfile then cat errfile >> $LOGFILE rm errfile fi |
C | if test -w errfile; then{ cat errfile >> $LOGFILE; rm errfile;} |
D | if [ -w errfile ] { cat errfile >> $LOGFILE rm errfile} |
2.下述命令的输出结果是什么?expr `pwd` : ‘^/\([^/]*).*$’
编号 | 选项 |
---|
A | 获取当前工作目录的路径名字符串的长度 |
B | 获取当前工作目录的路径名的最后一个分量 |
C | 输出结果为空字符串 |
D | 获取当前工作目录的路径名的第一个分量 |
3.每隔3秒钟一次列出文件data.txt的大小,不正确的程序为:
编号 | 选项 |
---|
A | while true do sleep 3ls -l data.txtdone |
B | while true do ls -l data.txtsleep 3done |
C | while true; do sleep 3; ls -l data.txt; done |
D | while sleep 3;do ls -l data.txt;done |
4.bash输入下列一行回车后导致当前bash终止运行,下面哪个说法是正确的?a() { a;};a
编号 | 选项 |
---|
A | 系统资源发生了死锁 |
B | 将左花括号与a之间的空格删掉,bash就不会异常中止 |
C | 缺少递归出口,导致函数的无穷递归,最终耗尽了CPU资源,bash异常中止 |
D | 这段程序语法错误,导致bash异常中止 |
5.如何在bash中增加注释文字?
编号 | 选项 |
---|
A | 以;领头,直到行尾的文字都视为注释 |
B | 以//领头,直到行尾的文字都视为注释 |
C | 以/*和*/包裹的内容都视为注释 |
D | 以#领头,直到行尾的文字都视为注释 |
6.C语言程序中子程序main的返回值是一个整数,这个返回值无法被当前进程的代码引用,但是可以被父进程利用。父进程用来判断子进程退出的状态。在bash中,将子进程main函数的返回值用于判断命令执行成功与否的条件判断,main函数返回非0为成功,返回0为失败。
7.bash支持复合条件,也就是条件的“与”以及“或”,分别用符号&&和||连接两个命令。
8.bash中可以使用花括号{}或圆括号()将若干个命令组合为一个复合命令,两者的区别在于花括号方式会在新的子shell中顺序执行这一组命令中的各个命令,圆括号方式是在当前shell进程中执行。
9.bash的内部命令eval可以把程序运行期间实时生成的数据当成程序来运行。
10.由于for是bash的内部命令,就如同C语言中的保留关键字一样,系统不可以设计一个名字为for的可执行文件。因为即使有名为for的可执行文件,也无法将其投入运行,操作员在交互式bash输入的一行的第一个单词是for,就会被bash解释为for循环控制。
@Power By Exercises-Manager