当前位置: 技术问答>linux和unix
帮忙给写3个shell程序
来源: 互联网 发布时间:2016-01-10
本文导语: 1. 编写一个SHELL程序,接受2—15范围内的一个数作为参数,在标准输出设备上用+号,-号和竖杠(|)画出以给定的参数值为边的正方形。如果命令行中参数数目不对或数值超出范围,显示相应的错误信息。 ...
1. 编写一个SHELL程序,接受2—15范围内的一个数作为参数,在标准输出设备上用+号,-号和竖杠(|)画出以给定的参数值为边的正方形。如果命令行中参数数目不对或数值超出范围,显示相应的错误信息。
+————+
| |
| |
+————+
2. 编写一个SHELL程序,使它只接受一个命令行参数,利用该参数输入一个目录,计算该目录下(不包括子目录)所有文本文件的总行数。
如:某个目录下有三个文本文件文件1.txt,2.txt,3.txt, 分别是3行,20行,19行.那么统计结果应该是42行。
如果命令行参数输入的是文件,则显示错误信息。
3. 编写一个SHELL程序,实现查看指定用户是否登录到系统上,如果已登录,显示“xxx用户已登录”并返回0,否则在该用户登录时显示“xxx用户现在登录到系统中”并返回1。
+————+
| |
| |
+————+
2. 编写一个SHELL程序,使它只接受一个命令行参数,利用该参数输入一个目录,计算该目录下(不包括子目录)所有文本文件的总行数。
如:某个目录下有三个文本文件文件1.txt,2.txt,3.txt, 分别是3行,20行,19行.那么统计结果应该是42行。
如果命令行参数输入的是文件,则显示错误信息。
3. 编写一个SHELL程序,实现查看指定用户是否登录到系统上,如果已登录,显示“xxx用户已登录”并返回0,否则在该用户登录时显示“xxx用户现在登录到系统中”并返回1。
|
50分少了点吧,呵呵
1.
echo "请输入一个数字c"
read size
len=`expr $size : ".*"`
result=0
if [ $len = 1 ]
then
result=`expr $size : "[2-9]"`
elif [ $len = 2 ]
then
result=`expr $size : "1[0-5]"`
fi
[ $result = 0 ] && {
echo 输入的数字必须在2~15之间
exit 1
}
let size=size-2
head='+'
line='|'
i=$size
sp=' '
while [ "$i" -ne "0" ]
do
head="${head}-"
line="${line} "
let i=i-1
done
head="$head+"
line="$line|"
echo $head
while [ "$size" -ne "0" ]
do
echo "$line"
let size=size-1
done
echo $head
1.
echo "请输入一个数字c"
read size
len=`expr $size : ".*"`
result=0
if [ $len = 1 ]
then
result=`expr $size : "[2-9]"`
elif [ $len = 2 ]
then
result=`expr $size : "1[0-5]"`
fi
[ $result = 0 ] && {
echo 输入的数字必须在2~15之间
exit 1
}
let size=size-2
head='+'
line='|'
i=$size
sp=' '
while [ "$i" -ne "0" ]
do
head="${head}-"
line="${line} "
let i=i-1
done
head="$head+"
line="$line|"
echo $head
while [ "$size" -ne "0" ]
do
echo "$line"
let size=size-1
done
echo $head