志在指尖
用双手敲打未来

shell脚本面试题(附答案)

shell脚本面试题

1.写一个shell脚本来得到当时的日期,时刻,用户名和当时工作目录。
答案:输出用户名,当时日期和时刻,以及当时工作目录的指令就是logname,date,whoiam和pwd。
现在,创立一个名为userstats.sh文件,将下面的代码增加到它。
#!/bin/bash
echo”Hello,$LOGNAME”
echo”Currentdateis`date`”
echo”Useris`whoiam`”
echo”Currentdirectory`pwd`”
给它增加执行权限,并且执行他。
#chmod755userstats.sh
#./userstats.sh
2.你需求打印一个给定的数字的反序,如输入10572,输出27501,假如没有输入数据,应该抛出过错和运用脚本阐明。在此之前,告诉我你需求在这里运用的算法。
1.输入的数字为n
2.赋值rev=0,sd=0(反向和单个数字设置为0)
3.n%10,将得到最左边的数字
4.反向数字可以用这个方法生成rev*10+sd
5.对输入数字进行右位移操作(除以10)
6.假如n>0,进入第三步,否则进行第七步
7.输出rev
现在,创立一个名为`numbers.sh`文件,并增加以下代码
#!/bin/bash
if[$#-ne1]
then
echo”Usage:$0number”
echo”Iwillfindreverseofgivennumber”
echo”Foreg.$00123,Iwillprint3210″
exit1
fi
n=$1
rev=0
sd=0
while[$n-gt0]
do
sd=`expr$n%10`
rev=`expr$rev\*10+$sd`
n=`expr$n/10`
done
echo”Reversenumberis$rev”
脚本输入:
$./numbers.sh10572
Reversenumberis27501
3找圆周率的值最简略的方法,咱们只是需求发出以下指令
pi100shell

shell脚本面试题附答案

有了压倒性的反应,咱们在面试系列文章,第一个在任何Linux操作网站上的形式,喜爱,反应在评论以及个人电子邮件地址使咱们从一篇文章到下一个文章。
这里是链接到系列访谈现已发表在Howtoing.com,咱们现已介绍许多主题即文章,FTP,MySQL和Apache的,脚本,Linux指令等。
实践采访壳脚本问题?
实践采访壳脚本问题
持续到上面的系列,咱们将有别的5个精彩的Linux面试问题和他们的答案。您的(TheHowtoing.com读者和常常访问者)支持总是需求使它成功。
1.编写shell脚本以获取当时日期,时刻,用户名和当时作业目录。
答:指令日志名,日期,我是谁和pwd将输出的用户名,当时日期和时刻,以及当时作业目录。仅仅在脚本中完结这些指令,并使它有点互动。
现在创立一个名为“userstats.sh”文件和下面的代码增加到它。
#!/bin/bashecho”Hello,$LOGNAME”echo”Currentdateis`date`”echo”Useris`whoiam`”echo”Currentdirectory`pwd`”
放置履行权限并运行脚本,如下所示。
#chmod755userstats.sh#./userstats.sh
示例输出
Hello,aviCurrentdateisSatJun713:05:29IST2014Userisavipts/02014-06-0711:59(:0)Currentdirectory/home/avi/Desktop
2.编写一个Shell脚本,假如作为指令行参数供给,则增加两个数字,假如未输入这两个数字,则会输出一条过错音讯以及一行怎么运用描绘。
答:这里是说明,假如作为指令行参数供给的,假如没有它抛出过错关于怎么运用脚本单行其将两个号一起简单的shell脚本。
再创立一个名为“two-numbers.sh”文件和增加以下内容吧。
#!/bin/bash#TheShebangif[$#-ne2]#IftwoInputsarenotreceivedfromStandardInputthen#thenexecutethebelowstatementsecho”Usage-$0xy”#printonstandardoutput,how-tousethescript(Usage-./1.shxy)echo”WherexandyaretwonosforwhichIwillprintsum”#printonstandardoutput,“WherexandyaretwonosforwhichIwillprintsum”exit1#LeaveshellinErrorStageandbeforethetaskwassuccessfullycarriedout.fi#EndoftheifStatement.echo”Sumof$1and$2is`expr$1+$2`”#IftheaboveconditionwasfalseanduserEnteredtwonumbersasacommandLineArgument,itwillshowthesumoftheenterednumbers.
对文件设置履行程序权限并运行脚本,如下所示。
#chmod755two-numbers.sh
条件1:运行脚本,而无需输入两个数字作为指令行参数,你会得到下面的输出。
示例输出
#./two-numbers.shUsage-./two-numbers.shxyWherexandyaretwonosforwhichIwillprintsum
条件2:当数字作为指令行参数输入,你会得到的成果,如图所示。
$./two-numbers.sh45Sumof4and5is9
因而,上述shell脚本满足问题中主张的条件。
3.您需求运用Shell脚本以相反的次序打印给定的Number说10572,以便仅运用指令行参数供给输入。假如输入数据没有作为指令行参数供给,它应该抛出和过错,并主张怎么运用脚本。编写脚本,但在之前告诉我需求在这里完结的算法。
算法
1.让输入数=n
2.设置rev=0,sd=0(反向和单数字设置为0)
3.n%10,将找到并给出单个最左边的数字
反转数被产生为rev*10+sd
5.将输入数字(n)减1。
6.假如n>0,则转到第3步,不然转到第7步
7.打印rev
现在再次,创立一个名为“numbers.sh”文件,并增加以下代码给它。
#!/bin/bashif[$#-ne1]thenecho”Usage:$0number”echo”Iwillfindreverseofgivennumber”echo”Foreg.$00123,Iwillprint3210″exit1fin=$1
rev=0sd=0while[$n-gt0]dosd=`expr$n%10`rev=`expr$rev\*10+$sd`n=`expr$n/10`doneecho”Reversenumberis$rev”
对文件颁发履行权限,并运行脚本,如下所示。
#chmod755numbers.h
条件1:当输入不作为指令行参数供给,你会得到下面的输出。
示例输出
./numbers.shUsage:./numbers.shnumber
IwillfindreverseofgivennumberForeg../2.sh123,Iwillprint321
条件2:当输入被作为指令行参数供给。
$./numbers.sh10572Reversenumberis27501
上面的脚本作业完美,输出正是咱们需求的。
你应该直接从终端计算一个实数计算,而不是任何shell脚本。你会做什么(说实数是7.56和2.453)?
答:咱们需求一种特别的方式来运用BC指令,如下所述。回波7.56+2.453的输出应该流水线到bc。
例如,运行以下指令,如图所示计算运用bc指令实时的数字。
$echo7.56+2.453|bc10.013
你应该找到pi的值到100个小数点,什么是最简单的办法来完结的成果。
答:找圆周率的值最简单的办法,正确的高达100位小数,咱们只需求宣布以下指令。
#pi1003.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
明显!咱们有必要安装包“圆周率”。仅仅做一个恰当或yum来取得所需的包安装“圆周率”到你正在运用的散布。

未经允许不得转载:IT技术网站 » shell脚本面试题(附答案)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载