如今想要找到一份满意的工作一定要进行面试,面试的过程就是决定你是否可以入职的关键,作为Linux开发工程师当然也要通过层层的面试筛选才能获得上岗的机会。本篇文章扣丁学堂Linux培训小编给读者们简单分享一下常见的Shell 脚本面试题有哪些,希望可以帮到将要面试的小伙伴们。
1、[[ $string == abc* ]] 和 [[ $string == "abc*" ]] 有什么区别
[[ $string == abc* ]] - 检查字符串是否以字母 abc 开头
[[ $string == "abc" ]] - 检查字符串是否完全等于 abc
2、如何列出以 ab 或 xy 开头的用户名 ?
egrep "^ab|^xy" /etc/passwd|cut -d: -f1
3、bash 中 $! 表示什么意思 ?
后台最近执行命令的 PID.
4、$? 表示什么意思 ?
前台最近命令的结束状态。
5、如何输出当前 shell 的 PID ?
echo $$
6、如何获取传递给脚本的参数数目 ?
echo $#
(LCTT 译注:和第3题重复了。)
7、$* 和 $@ 有什么区别*
$* - 以一个字符串形式输出所有传递到脚本的参数
$@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数
8、如何在 bash 中定义数组 ?
array=("Hi" "my" "name" "is")
9、如何打印数组的第一个元素 ?
echo ${array[0]}
10、如何打印数组的所有元素 ?
echo ${array[@]}
11、如何输出所有数组索引 ?
echo ${!array[@]}
12、如何移除数组中索引为 2 的元素 ?
unset array[2]
13、如何在数组中添加 id 为 333 的元素 ?
array[333]="New_element"
14、shell 脚本如何获取输入的值 ?
a) 通过参数
./script param1 param2
b) 通过 read 命令
read -p "Destination backup Server : " desthost
15、在脚本中如何使用 "expect" ?
/usr/bin/expect << EOD
spawn rsync -ar ${line} ${desthost}:${destpath}
expect "*?assword:*"
send "${password}\r"
expect eof
EOD
想要了解更多关于Linux开发方面内容的小伙伴,请关注扣丁学堂Linux培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的Linux讲师为您指导,此外扣丁学堂老师精心推出的Linux视频教程定能让你快速掌握Linux从入门到精通开发实战技能。扣丁学堂Linux技术交流群:422345477。
有疑问加站长微信联系(非本文作者)