24道Shell脚本面试题

什么是shell脚本,他是必须需要的么

一个shell脚本是一个文本文件,他包含一个或多个命令。作为系统管理员,我们经常需要使用一个或多个命令来完成一个任务,我们可以将这些命令添加到一个文本文件中来完成日常任务。

什么是默认登录shell,如何改变用户的登录shell

在linux系统中默认的登录shell是"/bin/bash",在创建用户是默认分配的。使用chsh命令可以改变默认的shell,示例如下:

chsh 用户名 -s <新shell>
chsh linux -s /bin/sh

在shell脚本中可以使用那些变量

  • 系统定义变量
  • 用户定义变量

系统变量是由系统自己创建的,这些变量通常有大写字母组成,可以通过’set’查看。
用户定义变量使用系统用户定义和生成的,可以用echo $<变量名>来查看。

如何将标准输出和错误输出同时定向到同一个文件

  • 方法一
2>&1 
ls /usr/share/doc > out.txt 2>&1
  • 方法二
&>
ls /usr/share/doc &> out.txt

shell脚本中if如何嵌套

语法如下:

if [条件]
then
命令1
......
else if [条件]
then
命令1
......
else
命令1
......
fi
fi

shell脚本中"$?"标记的用途是什么

在写脚本时,如果想要检查前一个执行命令是否执行成功,在if条件中使用"$?"可以来检查前一命令的执行是否成功。

root@localhost:~# ls /usr/bin/shar
/usr/bin/shar
root@localhost:~# echo $?
0

如果结束状态是0,说明前一个命令执行成功

root@localhost:~# ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~# echo $?
2

如果结束状态不为0,说明前一个命令执行失败

在shell脚本中比较两个数字的大小

#!/bin/bash
x=10
y=20
if [$x -gt $y]
then
echo "x is greater than y"
else
echo "y is greater than x"
fi

shell脚本中break命令的作用

break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环。

shell脚本中continue命令的作用

continue命令不同于break命令,他只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如发生错误,但我们依然希望继续执行大循环的时候

shell脚本中case用法

case 变量 in
值1)
命令
......
值2)
命令
......
;;
esac

shell脚本中while用法

while (条件)
do
命令
......
done

如何使脚本可执行

chmod a+x myscript.sh

shell脚本中for循环用法

for 变量名 in 循环列表(值)
do
命令
......
done

如何调试shell脚本

使用’-x’参数sh -x myscript.sh。另一种方法是’-nv’参数sh -nv myscropt.sh

shell脚本中如何比较字符串

test命令可以用来比较字符创。测试命令会通过比较字符串中的每一个字符来比较。

Bourne shell(bash) 中有哪些特殊的变量

内置变量 含义
$0 命令行中脚本的名字
$1 第一个命令行参数
$2 第二个命令行参数
$3 第三个命令行参数
$4 第四个命令行参数
$9 第九个命令行参数
$# 命令行参数的数量
$* 所有命令行参数,以空格隔开

在shell脚本中如何测试文件

test 用法
-d 文件名 如果文件存在并且是目录,返回true
-e 文件名 如果文件存在,返回ture
-f 文件名 如果文件存在并且是普通文件,返回true
-r 文件名 如果文件存在并可读,返回true
-s 文件名 如果文件存在并且不为空,返回true
-x 文件名 如果文件存在并可执行,返回true
-w 文件名 如果文件存在并可写,返回true

shell脚本中如何写入注释

每一行开头以’#'开头,例如:

#!/bin/bash
# This is a command
echo “I am logged in as $USER”

如何让 shell脚本得到来自终端的输入

read命令可以读取来自终端(使用键盘)的数据。read命令得到用户的输入并置于你给出的变量中。例子如下:

# vi /tmp/test.sh
#!/bin/bash
echo ‘Please enter your name’
read name
echo “My Name is $name”
# ./test.sh
Please enter your name
Linuxceshi
My Name is Linuxceshi

如何取消变量或取消变量赋值

unset <变量名>

如何执行算术运算

  • 使用expr命令
expr 5 + 2
  • 用一个美元符号和方括号($[ 表达式 ])例如:
test=$[16 + 4] ; test=$[16 + 4]

do-while语句的基本格式

do
{
命令
} while (条件)

在shell脚本如何定义函数

$ diskusage () { df -h ; }
译注:下面是我给的shell函数语法,原文没有
[ function ] 函数名 [()]
{
命令;
[return int;]
}

猜你喜欢

转载自blog.csdn.net/qq_33235529/article/details/92820919
今日推荐