当前位置: 技术问答>linux和unix
两道Unix下shell的编程题
来源: 互联网 发布时间:2015-08-30
本文导语: 1)接受2—15范围内的一个数作为参数,在标准输出设备上用+号,-号和竖杠(|)画出以给定的参数值为边的长方形。如果命令行中参数数目不对或数值超出范围,显示相应的错误信息。 +——+ | | | | +...
1)接受2—15范围内的一个数作为参数,在标准输出设备上用+号,-号和竖杠(|)画出以给定的参数值为边的长方形。如果命令行中参数数目不对或数值超出范围,显示相应的错误信息。
+——+
| |
| |
+——+
2)取两个命令行参数,第一个是目录名,第二个是以字节计的文件容量。这一命令应列出给定目录中具有读权限,而且,容量小于给定容量的所有普通文件名。应检查命令行中只有两个参数,而且第一个参数是目录名。
+——+
| |
| |
+——+
2)取两个命令行参数,第一个是目录名,第二个是以字节计的文件容量。这一命令应列出给定目录中具有读权限,而且,容量小于给定容量的所有普通文件名。应检查命令行中只有两个参数,而且第一个参数是目录名。
|
第一题 boring,懒得写了, 记得以前是有一个程序叫 banner ,可以用#打印出来的样子.
第二题 我取的是文件的实际SIZE , 不明白你说的文件容量是个什么意思。
##############################################################
# findltsize directory size
# !/bin/bash
if [ $# -ne 2 ]
then
echo "Usage: $0 DIRECTORY SIZE(in bytes)"
else
if [ -d $1 ]
then
BASEPATH=$1
SIZELEVEL=$2
FILELIST=`find $BASEPATH -type f -perm -0400 `
for ONEFILE in $FILELIST
do
FILESIZE=`stat -c %s $ONEFILE`
if [ $FILESIZE -lt $2 ]
then
echo $ONEFILE $FILESIZE
fi
done
else
echo "DIR $1 does not exist."
fi
fi
#####################################################################
第二题 我取的是文件的实际SIZE , 不明白你说的文件容量是个什么意思。
##############################################################
# findltsize directory size
# !/bin/bash
if [ $# -ne 2 ]
then
echo "Usage: $0 DIRECTORY SIZE(in bytes)"
else
if [ -d $1 ]
then
BASEPATH=$1
SIZELEVEL=$2
FILELIST=`find $BASEPATH -type f -perm -0400 `
for ONEFILE in $FILELIST
do
FILESIZE=`stat -c %s $ONEFILE`
if [ $FILESIZE -lt $2 ]
then
echo $ONEFILE $FILESIZE
fi
done
else
echo "DIR $1 does not exist."
fi
fi
#####################################################################
|
找文件那个东东,用不着那么麻烦,实际干活的部分,一个 find 命令就可以了。
实在是用不着写脚本。
#!/bin/bash
if (( $# &2
实在是用不着写脚本。
#!/bin/bash
if (( $# &2