Skip to Content
bash shell脚本编程经典实例 (第2版)
book

bash shell脚本编程经典实例 (第2版)

by Carl Albing, JP Vossen
January 2021
Intermediate to advanced
581 pages
15h 7m
Chinese
Posts & Telecom Press
Content preview from bash shell脚本编程经典实例 (第2版)
shell
逻辑与算术
117
我们特意使用了“长度是否为
0
”这个短语。长度为
0
的变量有两种:设置为空串的变量
和不存在的变量。示例中的测试并不区分这两种情况。它只关心变量中是否有字符存在。
重要的是要将
$VAR
放进引号,否则测试会被一些怪异的用户输入干扰。如果
$VAR
的值是
x -a 7 -lt 5
且没有使用引号,那么下列语句:
if
[ -z $VAR ]
就会变成(在变量扩展之后):
if
[ -z x -a 7 -lt 5 ]
这是一种更为复杂的测试语法,完全有效,但结果可就不是你想要的了(也就是说,它测
试的并非是字符串长度是否为
0
)。
6.5.4
 参考
6.7
6.8
14.2
A.9
6.6
 测试等量关系
6.6.1
 问题
你想要检查两个
shell
变量是否相等,但是存在两种测试运算符:
-eq
=
(或
==
)。该用
哪个呢?
6.6.2
 解决方案
你需要的比较类型决定了该用哪种运算符。如果是进行数值比较,可以使用
-eq
运算符;
如果是进行字符串比较,则使用
=
(或
==
)运算符。
6.6.3
 讨论
6-3
是一个演示了这两种情况的简单脚本。
6-3
 
ch06/strvsnum
#!/usr/bin/env bash
# 实例文件:strvsnum
#
# 老生常谈的字符串与数值比较
#
VAR1=" 05 "
VAR2="5"
118
6
printf "%s" "do they -eq as equal? "
if
[ "$VAR1" -eq "$VAR2" ]
then
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

bash 网络安全运维

bash 网络安全运维

Paul Troncone, Carl Albing
Linux 内核观测技术BPF

Linux 内核观测技术BPF

David Calavera, Lorenzo Fontana

Publisher Resources

ISBN: 9787115553782