Shell编程练习题及答案(学习记录)

时间:2024-03-25 14:32:55

一、Linux下执行Shell脚本的方式:

1、用shell程序执行脚本:
a、根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等
b、程序的第一行#!/bin/bash里面指明了shell类型的,比如#!/bin/bash指明是bash,#!/bin/sh则是sh;
c、然后输入命令(其中bash为shell的名称,myshell.sh则为你要执行的代码):bash myshell.sh
2、直接执行脚本:
a、不过首先的加上可执行权限(也许要root权限,4情况而定)
执行:chmod u+x myshell.sh
b、然后执行:./myshell.sh (或者sh myshell.sh)就可以执行了。

二、shell编程练习题及运行结果

Tips:1、建立一个shelll脚本,例如:vi/vim myshell.sh
         内容:  #!/bin/bash
                echo "Hello,Shell!"
          ( 保存并退出后myshell.sh )
      2、加执行权限:chmod u+x myshell.sh
      3、执行:两种方法均可
          1> sh myshell.sh
          2>./myshell.sh

A、编写一个脚本,显示下面菜单:
1. Display list of all users currently logged in
2. Get help on a particular command
Press <Ctrl+D> to exit
如果选择1,显示当前登录的用户信息;若选择2,要求从键盘上输入一个命令名,并显示该命令的帮助信息;如果没有数据输入,脚本要先显示错误并退出。
源码:

#!/bin/bash
echo “1. Display list of all users currently logged in.”
echo “2. Get help on a particular command”
echo “Press <Ctrl+D>  to exit”
read ch
case $ch in
1) who
2) echo “Enter a command name:”
read comm
if test –z “${comm}then exit            
else 
   man $comm         
fi    
   echo “Invalid choice” 
exit
esac

结果:
Shell编程练习题及答案(学习记录)

B、编写一个脚本,它能够显示:
序列前10个数字:0、1、1、2、3、5、8、13、…。
源码:

#!/bin/bash
num1=0
num2=1
count=3
echo $num1
echo $num2
while test $count –le 10
do 
num1=$((${nume1} + ${nume2}))
echo $num1
count=$(( ${count} + 1))
temp=$nume1
num1=$num2
num2=$temp
done

结果:
Shell编程练习题及答案(学习记录)
C、写个shell脚本来把字符串反过来显示。
例如:给定abcde 输出edcba
源码:

#!/bin/bash
echo "enter a string "
read str
len=${#str}
echo $str|rev

结果:
Shell编程练习题及答案(学习记录)
D、编写一个shell脚本,打印任何数的乘法表。
例如,如果你执行此脚本,它应请求一个数,并显示它的表。显示例输出如下:
2
21 = 2
2
2 = 4

2*9 = 18
源码:

#!/bin/bash
echo "enter a number "
read num
k=1
while test %k -le 10
do
  sum=$((${sum}*${k}))
  k=$((${k}+1))
  echo "${num} * ${k} = ${sum}
done

结果:
Shell编程练习题及答案(学习记录)
E、利用while循环完成输出循环10次内容
源码:

#!/bin/bash
loop=0
while test $loop -ne 10 ]
do
   loop=$(($loop+1))
   echo "currnet value of loop is:$loop"
done  

结果:
Shell编程练习题及答案(学习记录)

以上内容均为自己书写,有误之处谢谢指出,请谅解!