shell面试题目总结

1.如何理解shell脚本中第一行#!/bin/sh

#!为特殊的表示符,其后是解释此脚本的shell的路径。此脚本使用/bin/sh进行解释执行。

 

2.如何向脚本传递参数。

脚本名字 参数1 参数2 ...  例:test.sh wenf girl

test.sh中脚本如下:

#!/bin/sh
echo $1 " is a " $2
exit 0

执行的结果是:wenf  is a  girl

总结点:

A:传入脚本的参数分别用$1,$2,...表示传入的第一个,第二个...参数。

$0------脚本的名字。

$#------传递给脚本的总的参数个数

$?------上一句执行代码或者整个shell退出时的情况,正常则为0,异常则是非0

$$------本程序的进程ID号(PID)

$!------上一个命令的PID

$*------传递给程序的所有参数组成的字符串

$@------以“参数1”“参数2”...的形式保存所有的参数

 

3.命令行直接新建一个文件的方法

总结的方法有:

A:touch 文件名

B: vi 文件名

C nano -w 文件名

另外,比较常用的两个文本编辑器为vim ,emacs

 

4.如何获取文件的前n行,后n行

获取文件的前n行,head -n 文件名;获取文件的后n行,tail -n 文件名

 

5如何调试bash脚本

在脚本#!/bin/sh 插入参数-xv ,例:#!/bin/sh -xv

 

6.如何连接字符串,如何进行整数的相加计算

连接字符串:str3=$str1$str2 ;整数相加:let num3=$num1+$num2

 

7.如何检查文件系统中是否存在某个文件

#!/bin/sh 
if [ -f ./testwenf.sh ]
then
echo "File exists"
fi
exit 0

检查文件系统中是否存在某个目录时:-d 目录名

 

8.shell脚本中循环语法

for循环:

#!/bin/sh 
for i in $(ls)
do
echo item:$i
done
exit 0

while循环:

#!/bin/sh 
counter=0
while [ $counter -lt 5 ]
do
echo The counter is $counter
let counter=counter+1
done

until循环

#!/bin/sh 
counter=10
until [ $counter -lt 5 ]
do
echo The counter is $counter
let counter=counter-1
done

 

9.单引号与双引号有什么区别

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

双引号---会计算所有变量的值并用值代替。

 

10.如何只用echo命令获取字符串变量的一部分

echo ${variable:x:y}

x-起始位置

y-长度

variable="My name is Petras, and I am developer."
echo ${variable:11:6} # 会显示 Petras

 

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

在脚本中添加 “命令

 

posted @ 2016-12-06 14:33  此媛非彼猿  阅读(214)  评论(0编辑  收藏  举报