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

请问有关shell编程下if语句的一个小问题

    来源: 互联网  发布时间:2016-08-23

    本文导语:  本帖最后由 zjwssg 于 2010-02-27 15:50:42 编辑 在写if语句时,if比较只能是数字才可以运行,设成字符条件的话就无法运行了,真奇怪啊。 #!/bin/bash #test varchar read name if [ $name -eq "11" ] then echo "yes" else echo "no" fi 上...

本帖最后由 zjwssg 于 2010-02-27 15:50:42 编辑
在写if语句时,if比较只能是数字才可以运行,设成字符条件的话就无法运行了,真奇怪啊。


#!/bin/bash
#test varchar
read name
if [ $name -eq "11" ]
then
echo "yes"
else
echo "no"
fi

上面这个我运行时,可以正常运行。
可下面这个,运行时输入  zjw或者 "zjw" 后,都是直接报错。

#!/bin/bash
#test varchar
read name
if [ $name -eq "zjw" ]
then
echo "yes"
else
echo "no"
fi
就不行了,难道字符时不是这样写吗


报错信息:
rac1 ~/test-> ./test7
zjw
./test7: line 4: [: zjw: integer expression expected
no


谢谢指教。

|
-eq只能是数字比较

字符串比较直接一个=

自己在CSDN下载个Unix与linux shell编程指南吧

仔细看看
1 字符串判断

str1 = str2      当两个串有相同内容、长度时为真 
str1 != str2      当串str1和str2不等时为真 
-n str1        当串的长度大于0时为真(串非空) 
-z str1        当串的长度为0时为真(空串) 
str1           当串str1为非空时为真

2 数字的判断

int1 -eq int2    两数相等为真 
int1 -ne int2    两数不等为真 
int1 -gt int2    int1大于int2为真 
int1 -ge int2    int1大于等于int2为真 
int1 -lt int2    int1小于int2为真 
int1 -le int2    int1小于等于int2为真

3 文件的判断

-r file     用户可读为真 
-w file     用户可写为真 
-x file     用户可执行为真 
-f file     文件为正规文件为真 
-d file     文件为目录为真 
-c file     文件为字符特殊文件为真 
-b file     文件为块特殊文件为真 
-s file     文件大小非0时为真 
-t file     当文件描述符(默认为1)指定的设备为终端时为真

3 复杂逻辑判断

-a         与 
-o        或 
!        非


|

果然还是有问题,我这里有本  shell编程,上面说的是2.2版本以后的shell可以使用 -eq.

只不过扩展为[[ 了。

看来尽信书不如无书。

刚刚测试了,输入正确的时候和输入错误的时候的结果竟然是一样的。

汗。。请问有关shell编程下if语句的一个小问题[图片]

    
 
 

您可能感兴趣的文章:

  • 请问如何在Java中执行SQL的块语句?
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • 请问java里怎么用goto语句??举个例子,好吗?谢谢
  • 请问如何在java中执行sql块语句?
  • 请问在 Linux 下如何用代码实现连接oracle数据库 并 执行 SQL 语句?
  • 这个shell语句是做什么呢?请问大家
  • 新手请问一句linux汇编语句
  • 请问一条shell语句,
  • 请问这个sql语句该怎么写?
  • 一个关于linux c 编程的小问题?请问下面的语句是什么意思?
  • 请问如何在Javascript中使用JSP语句?
  • 请问哪里能得到at&t的汇编说明书?比如各个语句的功能说明 。
  • 请问下面这个java语句段代表什么意思
  • 请问JSP中是否有重定向的语句?与ASP中的Response.redirect功能类似。
  • 请问一个sql语句的写法
  • 请问高手,如何知道一个insert语句执行是否成功呢?
  • 你好,请问下面的语句是什么意思啊,
  • 急!请问在jsp中有没有和asp中:response.end作用等效的语句!
  • 请问这个文件中的两句unix脚本语句是什么意思?
  • 请问关于RequestDispatcher重定向后,它下面的语句还执行吗???
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请问LINUX编程(内核编程)是在什么环境下用什么IDE编?
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 我想买台二手笔记本作编程,请问java编程的最低配置是多少,价几何
  • 请问linux/unix下编程与windows下编程有什么不同呢??
  • 请问linux中,如何编程知道硬盘是否格式化,如何编程实现格式化。最好有现成接口,谢谢。
  • 请问:如果懂unix编程,那么会懂linux编程吗?一般来说:它们有什么关系呢?
  • 菜鸟问题:请问要在Linux操作系统下完成TCP/IP网络编程,用什么编程工具好?
  • 请问linux下C/C++编程语言,同时请推荐相关书籍
  • 请问小红帽支持中文的c,c++,数据库,阿帕奇等编程吗?
  • 请问jsp,java在window和linux下编程有什么不同?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问哪里有jboss有关配置的教程,最好是中文的,先谢了
  • 高分请教:请问怎么才能得到最近所有有关文件操作(新建,删除等)的记录
  • 请问有关man的问题
  • 请问有关solarisx86几张光盘的问题
  • 请问一个shell中有关数据格式转化的问题
  • 请问数据库有关问题,谢谢!
  • 请问大虾有关在windows上移植GCC的问题。
  • 请问有关ObjectCollectedException的问题?
  • 请问如何学习corba,再推荐几本好的书,最好是和java有关的
  • 请问有关MAP,SET,LIST的定义,特性,要考scjp拉,书上又不清楚
  • 请问哪里可以找到有关Enhydra的资料?
  • 请问高手有关makefie!!!!
  • 请问哪有有关linux/unix操作手册sch的文档下载吗?
  • 请问一个有关cron输出的问题
  • 请问ftp上传大小写突然改变跟linux有关吗?
  • 请问装LINUX与计算机配置有关吗》?
  • 请问一个有关向Vector中加入元素的问题
  • 请问有关写日志的问题??
  • 请问一下有关LINUX内核的网卡驱动一个弱弱的问题
  • 请问大家一个有关hwclock的问题
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢 iis7站长之家
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!


  • 站内导航:


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

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

    浙ICP备11055608号-3