《Advanced Bash-scripting Guide》学习(十八):[[ ]]与[ ]的一些特殊情况
发布时间 - 2017-07-11 00:00:00 点击率:次本文所选的例子来自于《advanced bash-scripting gudie》一书,译者 杨春敏 黄毅
1 例1: 2 [ 1 -eq 1 ] && [ -n "`echo true 1>&2`" ] #true。1>&2表示将标准输出输出到文件描述符2(标准错误输出:屏幕) 3 [ 2 -eq 2 ] && [ -n "`echo true 1>&2`" ] #(not output) 4 5 [ 1 -eq 2 -a -n "`echo true 1>&2`" ] #true,这是错误的结果,难道是因为单括号数值计算中有两个条件判断吗? 6 7 [[ 1 -eq 2 && -n "`echo true 1>&2`" ] #(not output),有些-a 或 -o 不正确的情况,显然&&或||要稳妥些
-a 和 -o一般与[ ]使用,如:[ "$exp1" -a "$exp2" ]
&& 和 || 一般与[[ ]] 使用,如:[[ condition1 && condition2 ]]
1 例2 2 [ $a == z* ] #模式匹配:如果$a以a开头,则为true 3 [ $a == "z*" ] #字符匹配:如果$a的值等于z*,则为true 4 5 [ $a = z* ] #file glo*g and word splitting 将会发生,什么意思? 6 [ $a = "z*" ] #字符匹配:如果$a的值等于z*,则为true
以上属于字符串的比较,只不过==的功能在[[]]和[]中的行为是不同的。
1 例3 2 #只能用[[ ]] 可以进行进制转换比较 3 4 decimal=15 #十进制 5 octial=017 #八进制 6 hex=0x0f #十六进制 7 if [ "$decimal" -eq "$octal" ] 8 then 9 echo "$decimal equals $octal" 10 else 11 echo "$decimal is not equal to $octal" # 15 is not equal to 017 12 fi
# 不能用单括号[ ]计算! 13 if [[ "$decimal" -eq "$octal" ]] 14 then 15 echo "$decimal equals $octal" # 15 equals 017 16 else 17 echo "$decimal is not equal to $octal" 18 fi # 要用双括号[[ ]]计算! 19 if [[ "$decimal" -eq "$hex" ]] 20 then 21 echo "$decimal equals $hex" # 15 equals 0x0f 22 else 23 echo "$decimal is not equal to $hex" #[[ $hexadecimal ]]也能计算
24 fi
# 则为
# 这是
# 是因为
# 将会
# 也能
# 中有
# 要用
# 来自于
# 不能用
# 什么意思
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
七夕网站制作视频,七夕大促活动怎么报名?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
jquery插件bootstrapValidator表单验证详解
Laravel如何生成URL和重定向?(路由助手函数)
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
WEB开发之注册页面验证码倒计时代码的实现
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
js代码实现下拉菜单【推荐】
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Laravel如何实现本地化和多语言支持?(i18n教程)
中国移动官方网站首页入口 中国移动官网网页登录
在线制作视频网站免费,都有哪些好的动漫网站?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Laravel用户密码怎么加密_Laravel Hash门面使用教程
如何在云主机上快速搭建网站?
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
北京专业网站制作设计师招聘,北京白云观官方网站?
Laravel如何实现API版本控制_Laravel版本化API设计方案
如何在VPS电脑上快速搭建网站?
如何快速启动建站代理加盟业务?
Python图片处理进阶教程_Pillow滤镜与图像增强
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
LinuxShell函数封装方法_脚本复用设计思路【教程】
如何用美橙互联一键搭建多站合一网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
详解jQuery中的事件
高防服务器如何保障网站安全无虞?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
历史网站制作软件,华为如何找回被删除的网站?
WordPress 子目录安装中正确处理脚本路径的完整指南
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】


示将标准输出输出到文件描述符2(标准错误输出:屏幕)