立即登录

当前脚本发生错误 行18 Linux Shell脚本面试25个经典问答

03/15 01:52:10

当前脚本发生错误 行18 Linux Shell脚本面试25个经典问答

1 Shell脚本是什么、它是必需的吗?

答:一个Shell脚本是一个文本文件,包含一个或多个命令。做为系统管理员辅助论坛,咱们常常须要使用多个命令来完成一项任务当前脚本发生错误 行18,咱们能够添加这些全部命令在一个文本文件(Shell脚本)来完成这些平常工做任务。node

2 什么是默认登陆shell,如何改变指定用户的登陆shell

答:在Linux操做系统,“/bin/bash”是默认登陆shell,是在建立用户时分配的。使用chsh命令能够改变默认的shell。示例以下所示:shell

3 能够在shell脚本中使用哪些类型的变量?

答:在shell脚本,咱们可使用两种类型的变量:express

系统变量是由系统系统本身建立的。这些变量一般由大写字母组成,能够经过“set”命令查看。编辑器

用户变量由系统用户来生成和定义,变量的值能够经过命令“echo $”查看。函数

4 如何将标准输出和错误输出同时重定向到同一位置?

答:这里有两个方法来实现:测试

方法一:spa

2>&1(# ls /usr/share/doc > out.txt 2>&1 )操作系统

方法二:

&>(# ls /usr/share/doc &> out.txt )

5 shell脚本中“if”语法如何嵌套?

答:基础语法以下:

6 shell脚本中“$?”标记的用途是什么?

答:在写一个shell脚本时,若是你想要检查前一命令是否执行成功,在if条件中使用“$?”能够来检查前一命令的结束状态。简单的例子以下:

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

7 在shell脚本中如何比较两个数字 ?

答:在if-then中使用测试命令( -gt 等)来比较两个数字

8 shell脚本中break命令的做用 ?

答:break命令一个简单的用途是退出执行中的循环。咱们能够在while和until循环中使用break命令跳出循环。

9 shell脚本中continue命令的做用 ?

答:continue命令不一样于break命令,它只跳出当前循环的迭代,而不是整个循环。continue命令不少时候是颇有用的,例如错误发生,但咱们依然但愿继续执行大循环的时候。

10 告诉我shell脚本中Case语句的语法 ?

答:基础语法以下:

11 shell脚本中while循环语法 ?

答:如同for循环,while循环只要条件成立就重复它的命令块。不一样于for循环,while循环会不断迭代,直到它的条件不为真。基础语法:

12 如何使脚本可执行 ?

答:使用chmod命令来使脚本可执行。例子以下:

# chmod a+x myscript.sh

13 “#!/bin/bash”的做用 ?

答:#!/bin/bash是shell脚本的第一行,称为释伴(shebang)行。这里#符号叫作hash,而! 叫作 bang。它的意思是命令经过 /bin/bash 来执行。

14 shell脚本中for循环语法 ?

答:for循环的基础语法:

15 如何调试shell脚本 ?

答:使用’-x’参数(sh -x myscript.sh)能够调试shell脚本。另外一个种方法是使用‘-nv’参数( sh -nv myscript.sh)。

16 shell脚本如何比较字符串?

答:test命令能够用来比较字符串。测试命令会经过比较字符串中的每个字符来比较。

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

答:下面的表列出了Bourne shell为命令行设置的特殊变量。

18 在shell脚本中,如何测试文件 ?

答:test命令能够用来测试文件。基础用法以下表格:

19 在shell脚本中,如何写入注释 ?

答:注释能够用来描述一个脚本能够作什么和它是如何工做的。每一行注释以#开头。例子以下:

20 如何让 shell 就脚本获得来自终端的输入?

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

当前脚本页面发生错误_ie当前脚本发生错误_当前脚本发生错误 行18

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

答:“unset”命令用于取消变量或取消变量赋值。语法以下所示:

# unset 

22 如何执行算术运算 ?

答:有两种方法来执行算术运算:

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

23 do-while语句的基本格式 ?

答:do-while语句相似于while语句,但检查条件语句以前先执行命令(LCTT 译注:意即至少执行一次。)。下面是用do-while语句的语法

do { statements } while (condition)

24 在shell脚本如何定义函数呢 ?

答:函数是拥有名字的代码块。当咱们定义代码块,咱们就能够在咱们的脚本调用函数名字,该块就会被执行。示例以下所示:

$ diskusage () { df -h ; }

25 如何在shell脚本中使用BC(bash计算器) ?

答:使用下列格式,在shell脚本中使用bc:

variable=`echo “options; expression” | bc`

26在shell脚本成功执行前,如何中断脚本执行?

咱们须要使用‘exit’命令来实现以上描述的情境。‘exit’命令被强制输出非0值时,脚本会报错并退出。在Unix环境下的shell脚本中,0值表示成功执行。所以,在脚本终止前执行一个不带引号的‘exit -1’命令将使脚本停止。

#!/bin/bash echo "Hello" exit -1
echo "bye"

27 如何使用Linux命令来移除文件头?

当咱们须要删除文件中的指定行时,‘sed’命令能够用来解决该问题。下面是用来删除文件头(文件的首行)的正确命令。

# 内建的‘-i’开关就不须要重定向符
sed -i '1 d' file.txt

28 你怎么检查一个文本文件中某一行的长度?

‘sed -n ‘n p’ file.txt’能够解决,这里‘n’表示行号,‘p’打印出匹配内容(到标准输出),该命令一般与-n命令行选项连用。那么,怎样来获取长度计数呢?很明显,咱们须要经过管道输出给‘wc’命令来计算。

# sed -n '5 p' tecmint.txt | wc -c

29 能够在Linux系统上查看到全部非打印字符吗?你是怎么作到的?

能够。能够在Linux中查看全部的非打印字符。要实现上面所讲的方案,咱们须要‘vi’编辑器的帮助。 怎样在‘vi’编辑器中显示非打印字符?

30 假如你是一个员工组的团队领导,为xyz公司工做。公司要求你建立一个‘dir_xyz’目录,让该组成员都能在该目录下建立或访问文件当前脚本发生错误 行18,可是除了文件建立者以外的其余人不能删除文件,你会怎么作?

# mkdir dir_xyz # chmod g+wx dir_xyz # chmod +t dir_xyz

第一行命令建立了一个目录(dir_xyz),上面的第二行命令让组(g)具备‘写’和‘执行’的权限,而上面的最后一行命令——权限位最后的‘+t’是‘粘滞位’,它用来替换‘x’,代表在这个目录中,文件只能被它们的拥有者、目录的拥有者或者是超级用户root删除。

31 你能告诉我一个Linux进程经历的各个阶段吗?

一个Linux进程在它的一辈子中,一般经历了四个主要阶段。

32 Linux中cut命令怎么用?

'cut’是一个颇有用的Linux命令,当咱们要截取文件的指定部分并打印到标准输出,当文本区域以及文件自己很大时,这个命令颇有用。

-b:仅显示行中指定直接范围的内容;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
-n:与“-b”选项连用,不分割多字节字符;

# cut -c1-10 txt_tecmint
# cut -d;-f2 -f5 -f7 txt_tecmint

33 cmp’和‘diff’命令的区别是什么?

‘cmp’和‘diff’命令用来获取相同的东西,但各有侧重。diff’命令输出为了使两个文件同样而应该作的修改。而‘cmp’命令则将两个文件逐字节对比,并报告第一个不匹配的项。

34 能够用‘echo’命令来替换‘ls’命令吗?

能够的。‘ls’命令能够用‘echo’命令来替代。‘ls’命令列出目录内容,从替换上述命令的角度讲,咱们可使用‘echo *’,两个命令的输出彻底同样。

35 你可能听过inode吧。你能简要描述一下inode吗?

inode’是一个‘数据结构’,在Linux上用于文件标识。每一个文件在Unix系统上有一个独立的‘inode’和一个‘惟一的’inode号。

来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

最新资讯