LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1059|回复: 6

刚入门,有2道题,写出来后老报错,哪位XD给看看.谢谢.

[复制链接]
发表于 2005-7-25 10:24:21 | 显示全部楼层 |阅读模式
1.在根目录下有四个文件m1.txt,m2.txt,m3.txt,m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt,m2.txt,m3.txt,m4.txt四个文件分别拷贝到各自相应的目录下。
错的程序:
irectory=/dev
a=1
while [a<4]
do

        if [$a<4,-d m$a ]
        then
                mkdir m$a
        fi
        cp m$a.txt m$a
set a++;
done
=========================================
2.请用Shell编程来实现:当输入不同的选择时,执行不同的操作,如:输入start 开始启动应用程序myfiles,输入stop时,关闭myfiles,输入status时,查看myfiles进程,输入exit显示“EXIT!”并退出程序。
错的程序:
echo -e 'Enter "start" for start program, enter "stop" for stop program, enter "status" for process, enter "exit" for quit!'
read answer
if [ $answer -eq start ]
then
        ./myfiles

        elseif [ $answer -eq stop ]
        then
                killall myfiles
                elseif [ $answer -eq status ]
                        then
                        ps aux myfiles
                        elseif [ $answer -eq exit ]
                        then
                        echo "EXIT!"
                        else
                                echo "echo -e 'Enter "start" for start program, enter "stop" for stop program, enter "status" for process, enter "exit" for quit!'
                        fi
                fi
        fi
fi
发表于 2005-7-25 10:47:09 | 显示全部楼层
< 应该是 -lt 就是less than
没有直接用<的
回复 支持 反对

使用道具 举报

发表于 2005-7-25 11:18:30 | 显示全部楼层
Post by urfeddy
1.在根目录下有四个文件m1.txt,m2.txt,m3.txt,m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt,m2.txt,m3.txt,m4.txt四个文件分别拷贝到各自相应的目录下。
错的程序:
irectory=/dev
a=1
while [a<4]
do

        if [$a<4,-d m$a ]
        then
                mkdir m$a
        fi
        cp m$a.txt m$a
set a++;
done
=========================================


for x in `seq 1 4`;do mkdir m$x;cp m$x.txt m$x;done

Post by urfeddy
2.请用Shell编程来实现:当输入不同的选择时,执行不同的操作,如:输入start 开始启动应用程序myfiles,输入stop时,关闭myfiles,输入status时,查看myfiles进程,输入exit显示“EXIT!”并退出程序。
错的程序:
echo -e 'Enter "start" for start program, enter "stop" for stop program, enter "status" for process, enter "exit" for quit!'
read answer
if [ $answer -eq start ]
then
        ./myfiles

        elseif [ $answer -eq stop ]
        then
                killall myfiles
                elseif [ $answer -eq status ]
                        then
                        ps aux myfiles
                        elseif [ $answer -eq exit ]
                        then
                        echo "EXIT!"
                        else
                                echo "echo -e 'Enter "start" for start program, enter "stop" for stop program, enter "status" for process, enter "exit" for quit!'
                        fi
                fi
        fi
fi


I think it's better to use case statement or select to achieve this.
回复 支持 反对

使用道具 举报

发表于 2005-7-25 14:49:29 | 显示全部楼层
楼上的果然不出所料呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-25 15:25:14 | 显示全部楼层
请问版主,这句是什么意思?
for x in `seq 1 4`;


第二题如果用case/select的话应该怎么写?  thx
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-25 23:10:31 | 显示全部楼层
再顶一下
回复 支持 反对

使用道具 举报

发表于 2005-7-26 00:30:43 | 显示全部楼层
Post by urfeddy
请问版主,这句是什么意思?
for x in `seq 1 4`;


第二题如果用case/select的话应该怎么写?  thx

如果你用linux的话,执行一下seq 1 4就知道了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表