shell脚本面试题(附答案)

IT技术2年前 (2023)发布 投稿用户
0

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找圆周率的值最简略的方法,咱们只是需求发出以下指令
pi100

shell

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来取得所需的包安装“圆周率”到你正在运用的散布。

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章