当前位置:  技术问答>linux和unix

shell编程问题 unary operator expected

    来源: 互联网  发布时间:2017-02-17

    本文导语:  编写一个shell程序,实现如下所示的菜单。 [1] Add Directory [2] Delete Directory [3] Change Directory [4] View Selected Directory [5] Exit 并为每个菜单项编写一个处理函数。用户选择一个有效菜单项之后,程序执行对应的函数,...

编写一个shell程序,实现如下所示的菜单。
[1] Add Directory
[2] Delete Directory
[3] Change Directory
[4] View Selected Directory
[5] Exit
并为每个菜单项编写一个处理函数。用户选择一个有效菜单项之后,程序执行对应的函数,然后询问用户是否想再看一遍菜单。如果用户输入菜单项无效,则显示信息:
Invalid entry, try again.
然后重新显示菜单。

下面是我自己写的代码
//////

#!/bin/bash
#homework1

display()
{
echo "[1]Add Directoty"
echo "[2]Delete Directory"
echo "[3]Change Directory"
echo "[4]View Selected Directory"
echo "[5]Exi"
}
my_add()
{
echo "Enter the directory name(add): "
read dir
mkdir $dir
}
my_del()
{
echo "Enter the directory name(delete): "
read dir
rm -rf $dir
}
my_change()
{
echo "Enter the directory name(change): "
read dir
cd $dir
}
my_view()
{
echo "The selected directory is : "
pwd
}

show_again()
{
echo "Show again?(y/n)"
read show

if [ $show="n" -o $show="N" ]
then return 0
else  return 1
fi
}

func()
{
running=1
while [ $running -eq 1 ]
do
display
read choise
case $choise in
1) my_add
   show_again
   running=$show_again
;;
2) my_del
   show_again
   running=$show_again
;;
3) my_change
   show_again
   running=$show_again
;;
4) my_view
   show_again
   running=$show_again
;;
5) running=0;;
*) echo "Invalid entry,try again"
;;
esac
done
}

func
////////////////////

运行效果:

[1] Add Directory
[2] Delete Directory
[3] Change Directory
[4] View Selected Directory
[5] Exit
1
Enter the directory name(add):
b
Show again?(y/n)
y
./1.sh: line 50: [: -eq: unary operator expected


因为是初学shell, 找了半天,百度了好久还是没有明白,大家帮忙看看 ···谢谢了

|
running=$show_again
这样是把变量show_again的值赋值给变量running,而变量show_again的值为空,那么变量running的值也是空


后续while [ $running -eq 1 ]
判断的时候因为$running为空,所有语法错误

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • Linux下的编程指的就是Shell编程吗?
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙?
  • C编程与shell编程有什么区别,两者有没有从属关系?
  • Linux C编程一站式学习,高级shell Bash脚本编程指南,
  • shell 编程 执行shell新建多个终端 并执行程序
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • Shell编程的,可以在shell中访问多行的属性吗?如:
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • 如何学UNIX的SHELL编程
  • 请推荐基本shell编程书籍
  • 请大家推荐一本shell编程方面的书
  • 给我推荐点shell编程的学习资料。
  • 谁有linux shell编程方面比较好的语法资料哦?
  • 关于Shell编程???
  • 学好SHELL编程能从事什么职业?
  • 关于shell脚本编程
  • 关于shell编程的小问题
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3