SHELL 笔试题

一:纠错题:请找出以下代码有错误的地方并更正。(3*20)

1. 两个数字相加

#!/bin.bash
read -p "input number1" : num1
read -p "input number2" : num2
echo $(num1+num2)

请将更正脚本保存,名为1.sh,存放路径为/home/kiosk/Desktop/stux/1.sh ,其中x为你的机号
;在脚本中用#注释出题目中错误的地方

2. 将开机selinux状态设置为disabled

#!/bin/bash
sed 'SELINUXs/disabled/enforcing/' /etc/selinux/config

请将更正脚本保存,名为2.sh,存放路径为/home/kiosk/Desktop/stux/2.sh ,其中x为你的机号
;在脚本中用#注释出题目中错误的地方

3. 判断100以内被5整除但是不能被7整除的数字

#!/bin/bash
for i in (seq 1 100)
A=$(($i % 5))
B=$(($i%7))
if [ $A -eq 0 ] -a [ $B -ne 0 ]
then
echo $i
fi

请将更正脚本保存,名为3.sh,存放路径为/home/kiosk/Desktop/stux/3.sh ,其中x为你的机号
;在脚本中用#注释出题目中错误的地方

二:填空题(2*10)

1. 通过什么符号计算传递进来的位置参数?__________
2. 如何检查之前的命令是否运行成功?__________
3. 如何获取一个文件每一行以空格为分隔的第三个元素?__________
4. 调试bash脚本的参数为?__________
5. A=a:b:c:d echo ${A//:/} 结果是__________
6. awk的NR变量作用是什么?___________________
7. 如何获取数组的长度? ____________
8. 如何引用传递给脚本的第十个位置参数?_______________
9. $$的含义?_____________________
10. 命令 “export” 有什么用? ____________________________

三:选择题(2*10)

1. Awk里的内置变量NF指的是(    )
A) 所有输入文件记录的行数 B) 单个输入文件记录的行数
C) 以指定分隔符号作为分隔的列数 D) AWK处理文件的个数

2. 跳出当前循环,进入下一个循环使用的语句是( )
A) continue B)break C)exit D)return

3. 使用正则表达式的语句sed -n '/^\<[^0-9a-d]*\>$/p' /tmp/list输出的可能是以下哪个( )
A)kevin alice B)selena
C)peter D)23naive

4. 以下哪个选项关于数组赋值是错误的( )
A) A[1]=3 B)A=([15]=1 a d e)
C)A=((6 7 0 2)) D)A=(15 3 47 a)

5. 以下哪个表达式可以算出8+3的结果( )
A) echo $((8+3))
B) echo $(8+3)
C) echo ${8+3}
D) echo $[[8+3]]

6. 以下哪个流程语句是判断为真则做循环( )
A) until B)while
C)case D)for
7. 阅读以下代码,该代码输出结果是( )
#!/bin/bash
i=0
sum=0
while [ $i -le 5 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
echo $sum
A)10 B)21 C)15 D)该代码执行会产生死循环

8. 函数内如何设置局部变量( )
A) local B)export
C)source D)function

9. 以下哪一种指令显示的结果为$test( )
A)\echo $test B)echo "$test"
C)echo '$test' D)echo "${test}"

10. shift的作用是( )
A) 定义返回值 B)移动位置参数
C)跳出脚本 D)跳出循环