admin 管理员组文章数量: 887075
2024年1月18日发(作者:物超所值的java面试题)
Shell编程
1.编写一个shell脚本,以一个普通文件作为参数。其功能是:判断文件的大小是否为0,如果是则删除它;否则将该文件的内容输出到标准输出。
#bin/bash
if [ $# -lt 1 ]
then
echo "must have one parameter for test file"
exit
fi
FILENAME=$1
if [ -f $FILENAME ]
then
if [ -s $FILENAME ]
then
cat $FILENAME
else
rm -rf $FILENAME
fi
else
echo "$FILENAME is not a file"
exit
fi
2. 试编写一个SHELL程序,该程序能接收用户从键盘输入的100个整数,然后求这100个数的总和、最大值及最小值,并输出到屏幕上。
#!/bin/bash
i=0
max=0
min=99999
total=0
while [ $i -lt 5 ]
do
read val
total=`expr $total + $val`
if [ $val -lt $min ]
第 1 页 共 3 页
then
min=$val
fi
if [ $val -gt $max ]
then
max=$val
fi
i=`expr $i + 1`
done
echo "Total=$total"
echo "Max =$max"
echo "Min =$min"
3. 设计一个Shell程序,在/root目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
#! /bin/bash
#
i=1
#while循环
while [ $i -le 50 ]
do
#利用 test命令 [ -d /userdata ]:判断/userdata是否存在,如果存在直接创建子目录,不#存在先创建/userdata再创建子目录。
if [ -d /userdata ]
then
mkdir -p /userdata/user$i
else
mkdir /userdata
mkdir -p /userdata/user$i
fi
#根据题目的意思:/userdata/user$i应该是具有754权限,所以利用chmod赋权限。
chmod 754 /userdata/user$i
i=$(($i+1))
done
4.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下
#/bin/sh
#Programm :
第 2 页 共 3 页
# Using for move currently directory to /tmp
for FileName in `ls -l | awk '$5>10240 {print $9}'`
do
mv $FileName /tmp
done
ls -al /tmp
echo "Done! "
第 3 页 共 3 页
版权声明:本文标题:Shell编程题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705527596h488629.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论