Linux Shell 脚本实用面试问题及答案
我们在访谈系列文章中获得了热烈的反响,这是 Linux 操作指南网站上首次以点赞、评论反馈以及个人电子邮件地址的形式进行回应,这使得我们从一篇文章跳到下一篇文章。
这是已在 Example.com 上发布的访谈系列文章的链接,其中我们涵盖了很多主题,例如 FTP、MySQL、Apache、脚本、Linux 命令等。
继续上述系列,我们在这里带来另外 5 个精彩的 Linux 面试问题及其答案。我们始终需要您的(Example.com 读者和常客)的支持才能取得成功。
1. 编写一个 shell 脚本来获取当前日期、时间、用户名和当前工作目录。
现在创建一个名为“ userstats.sh ”的文件并向其中添加以下代码。
#!/bin/bash echo "Hello, $LOGNAME" echo "Current date is `date`" echo "User is `who i am`" echo "Current directory `pwd`"
放置执行权限并运行脚本,如下所示。
# chmod 755 userstats.sh # ./userstats.sh
示例输出
Hello, avi Current date is Sat Jun 7 13:05:29 IST 2014 User is avi pts/0 2014-06-07 11:59 (:0) Current directory /home/avi/Desktop
2. 编写一个 Shell 脚本,如果命令行参数提供了两个数字,则将其相加,如果未输入这两个数字,则输出一条错误消息以及一行如何使用的描述。
再次创建一个名为“ two-numbers.sh ”的文件并向其中添加以下内容。
#!/bin/bash # The Shebang if [ $# -ne 2 ] # If two Inputs are not received from Standard Input then # then execute the below statements echo "Usage - $0 x y" # print on standard output, how-to use the script (Usage - ./1.sh x y ) echo " Where x and y are two nos for which I will print sum" # print on standard output, “Where x and y are two nos for which I will print sum ” exit 1 # Leave shell in Error Stage and before the task was successfully carried out. fi # End of the if Statement. echo "Sum of $1 and $2 is `expr $1 + $2`" # If the above condition was false and user Entered two numbers as a command Line Argument, it will show the sum of the entered numbers.
设置文件执行者权限并运行脚本,如下所示。
# chmod 755 two-numbers.sh
条件 1:运行脚本而不输入两个数字作为命令行参数,您将得到以下输出。
示例输出
# ./two-numbers.sh Usage - ./two-numbers.sh x y Where x and y are two nos for which I will print sum
条件 2:当输入数字作为命令行参数时,您将获得如图所示的结果。
$ ./two-numbers.sh 4 5 Sum of 4 and 5 is 9
因此上述 shell 脚本满足问题所建议的条件。
3. 您需要使用 Shell 脚本以相反的顺序打印给定的数字(例如 10572),这样输入仅使用命令行参数提供。如果输入数据不是作为命令行参数提供的,它应该抛出错误并建议如何使用脚本。编写脚本,但在此之前告诉我需要在此处实现的算法。
算法
- 1. 设输入数字 = n
- 2. 设置 rev=0, sd=0 (反向且个位数设置为 0)
- 3. n % 10,将找到并给出最左边的一位数字
- 4. 反向数生成为 rev * 10 + sd
- 5. 将输入数(n)减少 1。
- 6. 如果 n > 0,则转到步骤 3,否则转到步骤 7
- 7. 打印版本
现在再次创建一个名为“ numbers.sh ”的文件并添加以下给定的代码。
#!/bin/bash if [ $# -ne 1 ] then echo "Usage: $0 number" echo " I will find reverse of given number" echo " For eg. $0 0123, I will print 3210" exit 1 fi n=$1 rev=0 sd=0 while [ $n -gt 0 ] do sd=`expr $n % 10` rev=`expr $rev \* 10 + $sd` n=`expr $n / 10` done echo "Reverse number is $rev"
授予该文件的执行权限并运行脚本,如下所示。
# chmod 755 numbers.h
条件 1:当未提供输入作为命令行参数时,您将得到以下输出。
示例输出
./numbers.sh Usage: ./numbers.sh number I will find reverse of given number For eg. ./2.sh 123, I will print 321
条件 2:当输入作为命令行参数提供时。
$ ./numbers.sh 10572 Reverse number is 27501
上述脚本运行完美,输出正是我们所需要的。
4. 假设您要直接从终端而不是任何 shell 脚本计算实数。您会怎么做(假设实数是 7.56 和 2.453)?
例如,运行以下命令,使用bc命令实时计算数字,如图所示。
$ echo 7.56 + 2.453 | bc 10.013
5. 你需要找到圆周率 (π) 的小数点后 100 位的值,得到该结果的最简单方法是什么。
# pi 100 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
显然!我们必须安装软件包“ pi ”。只需执行apt或yum即可获取所需软件包,以将“ pi ”安装到您正在使用的发行版上。
现在就这些了。我很快会再次在这里发布另一篇有趣的文章。在此之前,请继续关注并关注 Example.com。不要忘记在下面的评论部分向我们提供您宝贵的反馈。