1
.用
Shell
编程,判断一文件是不是字符设备文件,如果是将其拷贝到
/dev
目录下。
参考程序:
#!/bin/sh
FILENAME=
echo “Input file name : ”
read FILENAME
if [ -c "$FILENAME" ]
then
cp $FILENAME /dev
fi
2 .请下列 shell 程序加注释,并说明程序的功能和调用方法: #!/bin/sh
#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in
'start')
/usr/sbin/apachectl start ;;
'stop')
/usr/sbin/apachectl stop ;;
'restart')
/usr/sbin/apachectl restart ;;
*)
echo "usage $0 start|stop|restart" ;;
esac
参考答案:
( 1 )程序注释
#!/bin/sh 定义实用的 shell
#
# /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in #case 结构开始,判断 “ 位置参数 ” 决定执行的操作。本程序携带一个 “ 位置参数 ” ,即 $1
'start') # 若位置参数为 start
/usr/sbin/apachectl start ;; # 启动 httpd 进程
'stop') # 若位置参数为 stop
/usr/sbin/apachectl stop ;; # 关闭 httpd 进程
'restart') # 若位置参数为 stop
/usr/sbin/apachectl restart ;; # 重新启动 httpd 进程
*) # 若位置参数不是 start 、 stop 或 restart 时
echo "usage $0 start|stop|restart" ;; # 显示命令提示信息:程序的调用方法
esac #case 结构结束
( 2 )程序的功能是启动,停止或重新启动 httpd 进程
( 3 )程序的调用方式有三种:启动,停止和重新启动。
3 .设计一个 shell 程序,添加一个新组为 class1 ,然后添加属于这个组的 30 个用户,用户名的形式为 stdxx ,其中 xx 从 01 到 30 。
参考答案:
#!/bin/sh
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
i=$(($i+1))
done
4 .编写 shell 程序,实现自动删除 50 个账号的功能。账号名为 stud1 至 stud50 。
参考程序:
#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i+1 ))
done
参考程序:
#!/bin/sh
FILENAME=
echo “Input file name : ”
read FILENAME
if [ -c "$FILENAME" ]
then
cp $FILENAME /dev
fi
2 .请下列 shell 程序加注释,并说明程序的功能和调用方法: #!/bin/sh
#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in
'start')
/usr/sbin/apachectl start ;;
'stop')
/usr/sbin/apachectl stop ;;
'restart')
/usr/sbin/apachectl restart ;;
*)
echo "usage $0 start|stop|restart" ;;
esac
参考答案:
( 1 )程序注释
#!/bin/sh 定义实用的 shell
#
# /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in #case 结构开始,判断 “ 位置参数 ” 决定执行的操作。本程序携带一个 “ 位置参数 ” ,即 $1
'start') # 若位置参数为 start
/usr/sbin/apachectl start ;; # 启动 httpd 进程
'stop') # 若位置参数为 stop
/usr/sbin/apachectl stop ;; # 关闭 httpd 进程
'restart') # 若位置参数为 stop
/usr/sbin/apachectl restart ;; # 重新启动 httpd 进程
*) # 若位置参数不是 start 、 stop 或 restart 时
echo "usage $0 start|stop|restart" ;; # 显示命令提示信息:程序的调用方法
esac #case 结构结束
( 2 )程序的功能是启动,停止或重新启动 httpd 进程
( 3 )程序的调用方式有三种:启动,停止和重新启动。
3 .设计一个 shell 程序,添加一个新组为 class1 ,然后添加属于这个组的 30 个用户,用户名的形式为 stdxx ,其中 xx 从 01 到 30 。
参考答案:
#!/bin/sh
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
i=$(($i+1))
done
4 .编写 shell 程序,实现自动删除 50 个账号的功能。账号名为 stud1 至 stud50 。
参考程序:
#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i+1 ))
done