当前位置:首页 » 操作系统 » linuxif不等于

linuxif不等于

发布时间: 2022-02-25 06:40:31

1. shell编程中的if判断语句,为什么总是输出“str1 不等于 str2”

字符串的比较问题,
if [ str1 = str2 ]; then
改为:
if [ "$str1" = "$str2" ]; then

变量取值在前面加$,字符串记得加双引号。

2. shell if函数中几种条件判断的区别

1、整数比较:
[plain] view plain
-eq 等于,如:if [ "$a" -eq "$b" ] 或 if [ $a -eq $b ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
== 等于,如:if if (("$a" == "$b"))
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
特别说明的是(())字符和括号之间不需要留空格,但[[ ]],[]要求比较严格,需要留空格。
2、字符串比较,上面的-eq,-nq等公式只适用于数字比较,不适用于字符比较

[plain] view plain
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价

[[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true
[[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
[ $a == z* ] # File globbing 和word splitting将会发生
[ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true

3、括号之间的区别:

[[ ]],[]对括号内变量要求严格且且敏感,但(())则相对宽松一些

[plain] view plain
1、if [[ $a == $b ]] 和 if [[ $a == $b ]] 等价
但if [[ $a == $b ]] 和if [[ a == b ]] 不等价
2、if (($a == $b)) 和 if (($a = $b))等价
if (($a == $b)) 和 if ((a == b)) 等价

4、多条件判断:

&&和||适用于[[ ]]和(),-a和-o适用于[]中

举例如下:

[plain] view plain
if ((i == 1)) 和 if [ "$i" == 1 ]等价

if [[ "$i" = 1 && "$j" = 2 ]] 和 if ((i = 1)) || ((j = 2))

5、其它说明:

!= 不等于,如:if [ "$a" != "$b" ]

这个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]

3. 关于linux if多个判断问题

1 = 1 -a 2 = 2 -a $i = 2
表达式中,=也要和数值空格分开,不然会把 1=1这种当成一个字符串处理

4. linux shell 指令 诸如-d, -f, -e之类的判断表达式

文件比较运算符-e filename

  • 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename

  • 如果 filename为目录,则为真 [ -d /tmp/mydir ]-f filename

  • 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]-L filename

  • 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]-r filename

  • 如果 filename可读,则为真 [ -r /var/log/syslog ]-w filename

  • 如果 filename可写,则为真 [ -w /var/mytmp.txt ]-x filename

  • 如果 filename可执行,则为真 [ -L /usr/bin/grep ]filename1-nt filename2

  • 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2

  • 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386

/boot/bzImage ]字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

  • -z string 如果 string长度为零,则为真 [ -z "$myvar" ]-n string 如果 string长度非零,则为真 [ -n "$myvar" ]

  • string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three"]

  • string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]

算术比较运算符num1-eq num2 等于 [ 3 -eq $mynum ]

  • num1-ne num2 不等于 [ 3 -ne $mynum ]num1-lt num2 小于 [ 3 -lt $mynum ]

  • num1-le num2 小于或等于 [ 3 -le $mynum ]num1-gt num2 大于 [ 3 -gt $mynum ]

  • num1-ge num2 大于或等于 [ 3 -ge $mynum ]

拓展资料:

Linux操作系统

是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

5. linux中大于等于

eq 等于 if [ "$a" -eq "$b" ]
-ne 不等于 if [ "$a" -ne "$b" ]
-gt 大于 if [ "$a" -gt "$b" ]
-ge 大于等于 if [ "$a" -ge "$b" ]
-lt 小于 if [ "$a" -lt "$b" ]
-le 小于等于 if [ "$a" -le "$b" ]

< 小于(需要双括号) (( "$a" < "$b" ))
<= 小于等于(...) (( "$a" <= "$b" ))
> 大于(...) (( "$a" > "$b" ))
>= 大于等于(...) (( "$a" >= "$b" ))

6. shell中awk中if判断

你直接运行grep '2018-06' gprs_c* | grep $num |more 看下是不是有输出?

如果提示

Usage: grep [OPTION]... PATTERN [FILE]...

Try 'grep --help' for more information.

就是num没有赋值

然后看下awk那里,我这里举了个例子,可以试试下里面例子中的引号

$catgprs_c
2018-06-02;447956815999;2018-06-0200:00:00
2018-06-03;447956815999;2018-06-0300:00:00
2018-06-04;447956815999;2018-06-0400:00:00
$grep'2018-06'gprs_c*|grep'447956815999'|awk-F";"'{if($3<"2018-06-0300:00:00")print$1}'
2018-06-02
$date1="2018-06-0300:00:00"
$grep'2018-06'gprs_c*|grep'447956815999'|awk-F";"'{if($3<"'"$date1"'")print$1}'
2018-06-02

7. C语言 if如果我想加if某变量等于=比如。。。等于apple,怎么写呢 是不是if(ch=“apple”);好像不行

用“==”,“=”符号在C语言中代表的是赋值的意义,比较相等的话,应该用“==”符号,前提是比较双方的数据类型相同。不然会出现错误的。对吧!希望能帮到你!

8. linux shell编程 if语句无法判断变量是否相等

(($num1 != $num2))里面的是算术表达式
用(($num1 - $num2))
或者[ [ $num1 != $num2 ]]

9. linux中的{if($5!=4096)是什么意思

如果第五个参数 不等于 4096

10. linux if判断是不是数字

if echo $n|grep "^[0-9][0-9]*$";then
echo $n是数字
fi

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:189
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:56
php全角半角 发布:2024-12-23 14:55:17 浏览:829
手机上传助手 发布:2024-12-23 14:55:14 浏览:733
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:831
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:711
vbox源码 发布:2024-12-23 14:41:32 浏览:279
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:661
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:420
php解析pdf 发布:2024-12-23 14:40:01 浏览:820