免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2053 | 回复: 9
打印 上一主题 下一主题

怎么样根据用户的输入来执行命令? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-10 20:36 |只看该作者 |倒序浏览
就类似于用cp复制文件时,遇上同名文件,会提问do you wish to overwrite (y or n)?
用户输入y就覆盖,否则就不覆盖。
请问这样的功能在shell里边怎么实现?非常感谢!!

[ 本帖最后由 setsuna 于 2008-7-10 20:40 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-10 20:47 |只看该作者
只是要输入么?
read my_var
if [ $my_var = 'yes' ]
   then
          ...
fi

论坛徽章:
0
3 [报告]
发表于 2008-07-10 20:53 |只看该作者
echo -n "Do you wish to overwrite (y or n)?" answer
case $answer in
Y|y)
  commands;;
*)
  echo "Quit";;
esac

论坛徽章:
0
4 [报告]
发表于 2008-07-11 12:43 |只看该作者
你先判断目的文件是否存在...if [[ -e "$dir" ]],如果存在的话,就提示。否则的话就去该干什么干什么了

论坛徽章:
0
5 [报告]
发表于 2008-07-11 12:57 |只看该作者

回复 #1 setsuna 的帖子

echo -n "Do you wish to overwrite (y or n)?"
read i
if [[ $i = "yes" || $i = "y" ]]; then
        echo "you choose yes"
fi

论坛徽章:
0
6 [报告]
发表于 2008-07-11 13:15 |只看该作者
echo -n "Do you wish to overwrite (y/n):"
read ans
if [ $ans -ne "y" -o $ans -ne "Y" ]
then
    cmd
    cmd
fi

论坛徽章:
0
7 [报告]
发表于 2008-07-11 15:04 |只看该作者
原帖由 爱知 于 2008-7-11 13:15 发表
echo -n "Do you wish to overwrite (y/n):"
read ans
if [ $ans -ne "y" -o $ans -ne "Y" ]
then
    cmd
    cmd
fi



if [ $ans -ne "y" -o $ans -ne "Y" ]
这样的写法不行.

论坛徽章:
0
8 [报告]
发表于 2008-07-13 01:21 |只看该作者

回复 #7 可可熊 的帖子

-ne写反了,改成=就行了。那又变得和你差不多了

论坛徽章:
0
9 [报告]
发表于 2008-07-13 01:43 |只看该作者
echo -n "Do you wish to overwrite (y or n)?"
read i
[ $i = "y" ] || [ $i = "Y" ] && { echo "you choose yes";exit;}
echo "you choose no"

我改,纯粹胡闹。o(∩_∩)o...

论坛徽章:
0
10 [报告]
发表于 2008-08-01 01:29 |只看该作者
echo -n "Do you wish to overwrite (y or n)?"
read i
if [[ $i = "yes" || $i = "y" ]]; then
        echo "you choose yes"
fi
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP