Linux 中关于Shell脚本面试问题大全

我们为你的面试准备选择了 70 个你可能遇到的 shell 脚本面试问题及解答。了解脚本或至少知道基础知识对系统管理员来说至关重要,它也有助于你在工作环境中自动完成很多任务。在过去的几年里,我们注意到所有的 linux 工作职位都要求脚本技能。

1) 如何向脚本传递参数?

Linux 中关于Shell脚本面试问题大全

例子:显示文件名称脚本

Linux 中关于Shell脚本面试问题大全

2) 如何在脚本中使用参数?

第一个参数 : $1,第二个参数 : $2

例子:脚本会复制文件 (arg1) 到目标地址 (arg2)

Linux 中关于Shell脚本面试问题大全

3) 如何计算传递进来的参数?

Linux 中关于Shell脚本面试问题大全

4) 如何在脚本中获取脚本名称?

Linux 中关于Shell脚本面试问题大全

5) 如何检查之前的命令是否运行成功?

Linux 中关于Shell脚本面试问题大全

6) 如何获取文件的最后一行?

Linux 中关于Shell脚本面试问题大全

7) 如何获取文件的第一行?

Linux 中关于Shell脚本面试问题大全

8) 如何获取一个文件每一行的第三个元素?

Linux 中关于Shell脚本面试问题大全

9) 假如文件中每行第一个元素是 FIND,如何获取第二个元素

Linux 中关于Shell脚本面试问题大全

10) 如何调试 bash 脚本

将 -xv 参数加到 #!/bin/bash 后

例子:

Linux 中关于Shell脚本面试问题大全

11) 举例如何写一个函数?

Linux 中关于Shell脚本面试问题大全

需要 C/C++ Linux 服务器架构师学习资料加群 812855908(资料包括 C/C++,Linux,golang 技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg 等),免费分享

UDP的epoll并发框架—解决OpenUOM的并发问题
12) 如何向连接两个字符串?

Linux 中关于Shell脚本面试问题大全

输出

Linux 中关于Shell脚本面试问题大全

13) 如何进行两个整数相加?

Linux 中关于Shell脚本面试问题大全

输出:3

14) 如何检查文件系统中是否存在某个文件?

Linux 中关于Shell脚本面试问题大全

15) 写出 shell 脚本中所有循环语法?

for 循环:

Linux 中关于Shell脚本面试问题大全

while 循环:

Linux 中关于Shell脚本面试问题大全

until 循环:

Linux 中关于Shell脚本面试问题大全

16) 每个脚本开始的 #!/bin/sh 或 #!/bin/bash 表示什么意思?

这一行说明要使用的 shell。#!/bin/bash 表示脚本使用 /bin/bash

对于 python 脚本,就是 #!/usr/bin/python。(LCTT 译注:这一行称之为释伴行。)

17) 如何获取文本文件的第 10 行?

Linux 中关于Shell脚本面试问题大全

18) bash 脚本文件的第一个符号是什么

Linux 中关于Shell脚本面试问题大全

19) 命令:[-z “” ] && echo 0 || echo 1 的输出是什么

Linux 中关于Shell脚本面试问题大全

20) 命令 “export” 有什么用?

使变量在子 shell 中可用。

21) 如何在后台运行脚本?

在脚本后面添加 “&”。

22) “chmod 500 script” 做什么?

使脚本所有者拥有可执行权限。

23) “>” 做什么?

重定向输出流到文件或另一个流。

24) & 和 && 有什么区别

●& - 希望脚本在后台运行的时候使用它

●&& - 当前一个脚本成功完成才执行后面的命令 / 脚本的时候使用它

25) 什么时候要在 [condition] 之前使用 “if” ?

当条件满足时需要运行多条命令的时候。

26) 命令: name=John && echo ‘My name is $name’ 的输出是什么

Linux 中关于Shell脚本面试问题大全

27) bash shell 脚本中哪个符号用于注释?

Linux 中关于Shell脚本面试问题大全

28) 命令: echo ${new:-variable} 的输出是什么

Linux 中关于Shell脚本面试问题大全

29) ‘ 和 “ 引号有什么区别?

●’ - 当我们不希望把变量转换为值的时候使用它。

●” - 会计算所有变量的值并用值代替。

30) 如何在脚本文件中重定向标准输出和标准错误流到 log.txt 文件?

在脚本文件中添加 “exec>log.txt 2>&1” 命令。

31) 如何只用 echo 命令获取字符串变量的一部分?

Linux 中关于Shell脚本面试问题大全

例子:

Linux 中关于Shell脚本面试问题大全

32) 如果给定字符串 variable=”User:123:321:/home/dir”,如何只用 echo 命令获取 home_dir ?

Linux 中关于Shell脚本面试问题大全

33) 如何从上面的字符串中获取 “User” ?

Linux 中关于Shell脚本面试问题大全

34) 如何使用 awk 列出 UID 小于 100 的用户?

Linux 中关于Shell脚本面试问题大全

35) 写程序为用户计算主组数目并显示次数和组名

Linux 中关于Shell脚本面试问题大全

36) 如何在 bash shell 中更改标准的域分隔符为 “:” ?

Linux 中关于Shell脚本面试问题大全

37) 如何获取变量长度?

Linux 中关于Shell脚本面试问题大全

38) 如何打印变量的最后 5 个字符?

Linux 中关于Shell脚本面试问题大全

39) ${variable:-10} 和 ${variable: -10} 有什么区别?

●${variable:-10} - 如果之前没有给 variable 赋值则输出 10;如果有赋值则输出该变量

●${variable: -10} - 输出 variable 的最后 10 个字符

40) 如何只用 echo 命令替换字符串的一部分?

Linux 中关于Shell脚本面试问题大全

41) 哪个命令将命令替换为大写?

Linux 中关于Shell脚本面试问题大全

42) 如何计算本地用户数目?

wc -l /etc/passwd|cut -d” “ -f1 或者 cat /etc/passwd|wc -l

43) 不用 wc 命令如何计算字符串中的单词数目?

Linux 中关于Shell脚本面试问题大全

44) “export $variable” 或 “export variable” 哪个正确?

Linux 中关于Shell脚本面试问题大全

45) 如何列出第二个字母是 a 或 b 的文件?

Linux 中关于Shell脚本面试问题大全

46) 如何将整数 a 加到 b 并赋值给 c ? 三种方法

Linux 中关于Shell脚本面试问题大全

Linux 中关于Shell脚本面试问题大全

Linux 中关于Shell脚本面试问题大全

47) 如何去除字符串中的所有空格?

Linux 中关于Shell脚本面试问题大全

48) 重写这个命令,将输出变量转换为复数: item=”car”; echo “I like $item” ?

Linux 中关于Shell脚本面试问题大全

49) 写出输出数字 0 到 100 中 3 的倍数 (0 3 6 9 …) 的命令?

Linux 中关于Shell脚本面试问题大全

50) 如何打印传递给脚本的所有参数?

Linux 中关于Shell脚本面试问题大全

51) [$a == $b] 和 [ $a -eq $b ] 有什么区别

●[$a == $b] - 用于字符串比较

●[$a -eq $b] - 用于数字比较

52) = 和 == 有什么区别

●= - 用于为变量赋值

●== - 用于字符串比较

53) 写出测试 $a 是否大于 12 的命令?

Linux 中关于Shell脚本面试问题大全

54) 写出测试 $b 是否小于等于 12 的命令?

Linux 中关于Shell脚本面试问题大全

55) 如何检查字符串是否以字母 “abc” 开头?

Linux 中关于Shell脚本面试问题大全

56) [[$string == abc*]] 和 [[ $string == “abc*” ]] 有什么区别

●[[$string == abc*]] - 检查字符串是否以字母 abc 开头

●[[$string == “abc” ]] - 检查字符串是否完全等于 abc

57) 如何列出以 ab 或 xy 开头的用户名?

Linux 中关于Shell脚本面试问题大全

58) bash 中 $! 表示什么意思?

后台最近执行命令的 PID.

59) $? 表示什么意思?

前台最近命令的结束状态。

60) 如何输出当前 shell 的 PID ?

Linux 中关于Shell脚本面试问题大全

61) $* 和 $@ 有什么区别

●$* - 以一个字符串形式输出所有传递到脚本的参数

●$@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数

62) 如何在 bash 中定义数组?

Linux 中关于Shell脚本面试问题大全

63) 如何打印数组的第一个元素?

Linux 中关于Shell脚本面试问题大全

64) 如何打印数组的所有元素?

Linux 中关于Shell脚本面试问题大全

65) 如何输出所有数组索引?

Linux 中关于Shell脚本面试问题大全

66) 如何移除数组中索引为 2 的元素?

Linux 中关于Shell脚本面试问题大全

67) 如何在数组中添加 id 为 333 的元素?

Linux 中关于Shell脚本面试问题大全

68) shell 脚本如何获取输入的值?

a) 通过参数

Linux 中关于Shell脚本面试问题大全

b) 通过 read 命令

Linux 中关于Shell脚本面试问题大全

69) 在脚本中如何使用 “expect” ?

Linux 中关于Shell脚本面试问题大全

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。