shell脚本常见⾯试题linux循环执行命令脚本
Q:1 Shell脚本是什么、它是必需的吗?
答:⼀个Shell脚本是⼀个⽂本⽂件,包含⼀个或多个命令。作为系统管理员,我们经常需要使⽤多个命令来完成⼀项任务,我们可以添加这些所有命令在⼀个⽂本⽂件(Shell脚本)来完成这些⽇常⼯作任务
Q:2 什么是默认登录shell,如何改变指定⽤户的登录shell
答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建⽤户时分配的。使⽤chsh命令可以改变默认的shell。
Q:3 可以在shell脚本中使⽤哪些类型的变量?
答:在shell脚本,我们可以使⽤两种类型的变量:
系统定义变量
⽤户定义变量
系统变量是由系统系统⾃⼰创建的。这些变量通常由⼤写字母组成,可以通过“set”命令查看。
⽤户变量由系统⽤户来⽣成和定义,变量的值可以通过命令“echo $<;变量名>”查看。
Q:4 如何将标准输出和错误输出同时重定向到同⼀位置?
答:这⾥有两个⽅法来实现:
⽅法⼀:
2>&1 (# ls /usr/share/doc > 2>&1 )
⽅法⼆:
&> (# ls /usr/share/doc &> )
Q:5 shell脚本中“$?”标记的⽤途是什么?
答:在写⼀个shell脚本时,如果你想要检查前⼀命令是否执⾏成功,在if条件中使⽤“$?”可以来检查前⼀命令的结束状态。简单的例⼦如下:
Q:6 在shell脚本中如何⽐较两个数字 ?
答:在if-then中使⽤测试命令( -gt 等)来⽐较两个数字,例⼦如下:
Q:7 shell脚本中break命令的作⽤ ?
答:break命令⼀个简单的⽤途是退出执⾏中的循环。我们可以在while和until循环中使⽤break命令跳出循环。
Q:8 shell脚本中continue命令的作⽤ ?
答:continue命令不同于break命令,它只跳出当前循环的迭代,⽽不是整个循环。continue命令很多时候是很有⽤的,例如错误发⽣,但我们依然希望继续执⾏⼤循环的时候。
Q:9 如何使脚本可执⾏ ?
答:使⽤chmod命令来使脚本可执⾏。例⼦如下:chmod +x score.sh
或执⾏/bin/bash score.sh
Q:10 “#!/bin/bash”的作⽤ ?
答:#!/bin/bash是shell脚本的第⼀⾏,称为释伴(shebang)⾏。这⾥#符号叫做hash,⽽! 叫做 bang。它的意思是命令通过 /bin/bash 来执
⾏。
Q:11 如何调试shell脚本 ?
答:使⽤’-x’参数(sh -x myscript.sh)可以调试shell脚本。另⼀个种⽅法是使⽤‘-nv’参数( sh -nv myscript.sh)。
Q:12 shell脚本如何⽐较字符串?
答:test命令可以⽤来⽐较字符串。测试命令会通过⽐较字符串中的每⼀个字符来⽐较。
Q:13 Bourne shell(bash) 中有哪些特殊的变量 ?
答:下⾯的表列出了Bourne shell为命令⾏设置的特殊变量。
Q:14 在shell脚本中,如何测试⽂件 ?
答:test命令可以⽤来测试⽂件。基础⽤法如下表格:
Q:15 在shell脚本中,如何写⼊注释 ?
答:注释可以⽤来描述⼀个脚本可以做什么和它是如何⼯作的。每⼀⾏注释以#开头
Q:16 如何执⾏算术运算 ?
答:有两种⽅法来执⾏算术运算:
使⽤expr命令(# expr 5 + 2) 2.⽤⼀个美元符号和⽅括号([表达式])例如:test=[表达式])例如:test=[16 + 4] ; test=$[16 + 4] Q:17 do-while语句的基本格式 ?
答:do-while语句类似于while语句,但检查条件语句之前先执⾏命令(LCTT 译注:意即⾄少执⾏⼀次。)。
Q:18 在shell脚本如何定义函数呢 ?
答:函数是拥有名字的代码块。当我们定义代码块,我们就可以在我们的脚本调⽤函数名字,该块就会被执⾏。⽰例如下所⽰:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论