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 页


本文标签: 权限 文件 输出 程序 目录