Linux运维在面试时经常被问到,前面给大家分享了一些,有关Shell 编程有关的面试题今天再大家整理一些分享给大家。
1.如何运行 Shell 脚本?
给脚本文件添加可执行权限:chmod +x script.sh
直接运行脚本文件:./script.sh
2.如何获取脚本参数?
$0 表示脚本名称,$1、$2、$3... 分别表示第 1、2、3... 个参数
示例:echo "Hello, $1"
3.什么是环境变量?如何设置环境变量?
环境变量是一些系统或者程序使用的值,如 PATH、HOME 等
export VAR=value 可以设置一个环境变量 VAR 的值为 value
4.如何从文件中读取内容?
使用 cat 或者 read 命令读取文件内容
示例:cat file.txt 或者 while read line; do echo "$line"; done < file.txt
5.如何定义函数?
使用 function 关键字或者简写 () 定义函数
示例:function hello() { echo "Hello, $1"; }
6.如何调试 Shell 脚本?
在脚本开头添加 set -x 可以开启调试模式,显示脚本的实际执行情况
示例:#!/bin/bash set -x
7.如何获取命令输出?
使用反引号 `` 或者 $() 将命令括起来即可获取输出
示例:echo "Today is date +%Y-%m-%d"
8.如何把多个命令组合在一起?
使用 ; 将多个命令串联起来
示例:echo "Hello"; echo "World"
9.如何获取当前脚本的名称?
答:可以使用 $0 获取当前脚本的文件名。
10.什么是命令替换?如何在命令中进行命令替换?
答:命令替换可以将一个命令的输出结果嵌入到另一个命令中。可以使用反引号 `` 或者 $() 将命令括起来即可进行命令替换。
11.如何判断一个文件或目录是否存在?
答:可以使用 test -e filename 或者 [ -e filename ] 判断文件或目录是否存在。
12.如何获取当前用户的用户名?
答:可以使用 $USER 获取当前用户的用户名。
13.如何读取用户输入的数据?
答:可以使用 read 命令读取用户输入的数据,并赋值给变量。
14.如何定义数组?如何获取数组的长度?
答:可以使用 array=(item1 item2 item3) 定义数组,使用 ${#array[@]} 获取数组的长度。
15.如何对字符串进行截取操作?
答:可以使用 ${string:start:length} 对字符串 string 进行截取,其中 start 表示开始位置,length 表示长度。
16.如何在脚本中添加注释?
答:可以使用 # 符号添加注释,注释部分不会被执行。
17.如何查看系统的 DNS 配置信息?
答:可以通过执行 cat /etc/resolv.conf 命令来查看系统的 DNS 配置信息。
18.什么是shell脚本?它有什么用途?
答:Shell脚本是一种以Shell(终端)为解释器的脚本,它可以用来构建自动化的任务、工作流,也可以作为日常运维的工具。Shell脚本可以通过编写一系列的命令来完成复杂的操作任务,非常适合编写系统管理、监控、备份等脚本。
19.如何在脚本中使用正则表达式?如何进行文本处理?
答:可以使用grep、sed、awk等工具进行文本处理,它们都支持正则表达式的使用。例如“grep 'pattern' file.txt”表示查找file.txt文件中包含pattern的行。可以使用变量、管道符、重定向符等来结合使用这些工具,例如“result=ls -al | grep 'pattern' > file.txt”表示查找当前目录下的文件列表,并将其中包含pattern的文件名保存到file.txt文件中。
20.如何获取命令输出?
整理不易,欢迎大家转发收藏,关注我每天分享运维小知识。