linux 字符串 空,linux – bash空字符串/命令
你似乎把bash与其他一些编程语言混淆了.变量被替换,然后左边的内容被执行.
"$a"
这是引号之间的a的内容. a是空的,所以这相当于:
""
那不是命令. “没有找到指令.”由于存在错误,执行不成功(shell返回代码不为0),因此命令的后半部分 – && echo 1 – 没有被执行.
反引号…
``
…执行它们之间的任何内容,该命令的输出替换整个构造. (还有$()也做同样的事情,不太容易在脚本中被忽略.)所以……
`echo "foo"`
……会评价……
foo
……然后将被执行.所以你…
``
……评估……
…然后“成功执行”(因为没有错误).
如果要测试a的内容,并且仅当a不为空时才执行echo 1,则应使用test命令:
test -n "$a" && echo 1
测试有一个方便的别名,[也可以方便地忽略尾随] …
[ -n "$a" ] && echo 1
…和bash-ism [[知道]关于变量替换,因此不需要引号来避免抱怨缺少参数,如果$a确实评估为空…
[[ -n $a ]] && echo 1
……或者,当然,更详细……
if [[ -n $a ]]
then
echo 1
fi
啊.错过了问题的核心部分:
$a && echo 1
这是两个陈述,用&&分隔.如果第一个语句执行OK,则仅执行第二个语句. bash将该行拆开并执行第一个语句:
$a
这是…
…这是“成功的”,所以第二个语句被执行.反对…
&& echo 1
…是语法错误,因为没有第一个语句. ;-)(Tricky,我知道,但这就是这个cookie崩溃的方式.)
linux 字符串 空,linux – bash空字符串/命令相关推荐
- linux bash 字符串 连接,Linux Bash 中字符串操作
Linux Bash 中字符串操作 所谓 "子字符串" 就是出现在其它字符串内的字符串. 比如 "3382" 就是 "this is a 3382 t ...
- Linux脚本双引号字符去除,shell命令去除字符串里双引号
echo \"refs/changes/84/727284/1\" | sed 's/\"//g' shell变量内字符替换和变量字符修改 a=12345123 #将${ ...
- linux桌面卷积文件删除不掉,Linux 删除文件夹和文件的命令(强制删除包括非空文件)...
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r ...
- linux 磁盘数据空 还有读写,Linux入门之磁盘管理(5)dd命令使用
Linux入门之磁盘管理(5)dd命令使用 在Linux中,经常需要一些数据读写等测试,还有文件以及其它数据的备份迁移,一般使用cp命令可以解决一部分,但是其无法进行控制数据的流向及动作,这时就可以使 ...
- linux下字符串操作,Linux Bash 中字符串操作
所谓"子字符串"就是出现在其它字符串内的字符串. 比如 "3382" 就是 "this is a 3382 test" 的子字符串. 我们有 ...
- linux 文本字符串过滤,linux文本内容过滤命令(grep)
grep 命令 用途:用于打印输出符合条件字符串所在的行 格式: grep [选项]... ""查找条件" 目标文件 常用选项: ① -i : 忽略大小写 ② -v ...
- linux bash 字符串 连接,Bash连接字符串
在本小节中,将学习如何在Bash Shell脚本中添加或连接字符串. 在bash脚本编制中,可以将两个或多个字符串添加或连接在一起,这称为字符串连接.它是任何一种编程语言的通用要求之一.应用特殊字符或 ...
- linux删除最后一个字符串,Bash删除字符串中的第一个和最后一个字符
问题描述 我有一个这样的字符串: |abcdefg| 我想要得到一个新的字符串(如string2)与原始字符串调用没有两个|在开始和结束时 所以我会有这个 abcdefg 在bash中可能吗? 最佳解 ...
- linux rpm -qa,为什么使用rpm -qa命令显示是空的?
为什么使用rpm -qa命令显示是空的?请问大家这是什么问题呢?怎么解决? 之前还显示装了很多RPM包的,最近好像是删错了什么文件,使用rpm -qa命令显示是空的.而且YUM命令也不能使用.开始以为 ...
- linux shell 文件空,linux shell编程 如何判断一个文件是否为空
shell 判断文件/目录是否为空 jfkidear144932015-01-15 shell中如何判断一个变量是否为空 l_nan365492014-07-14 在shell中如何判断一个变量是否为 ...
最新文章
- nginx rewrite和根据url参数location
- 4_Tensorflow框架的使用(20181217-)
- @Value和Hibernate问题
- 相机裁剪旋转_怎么旋转视频画面角度
- java接口文件定义类_Java入门笔记(四)类、包和接口
- iOS:Masonry 英文原档介绍
- 2015推荐的Android框架
- 批处理添加桌面快捷方式
- popen函数的实现
- android之自定义弹框
- DIGITS安装及服务部署
- 史上最详细Excel制作生命游戏,体验生命演化。
- ICON 文件构成 及 制作工具
- 网易公开课“Programming Paradigms” 笔记
- 02-ElasticSearch创建索引
- 02. 重构-代码的坏味道
- U盘文件恢复,3个方法恢复教程
- Qt 之 QSS(白色靓丽)
- 永磁同步电机力矩控制(三):关于电机位置信号
- linux应用服务排错,浅谈SELinux的配置以及排错问题
热门文章
- c语言实现链表结构6,用c语言实现的链表结构--数据结构实验
- python安装gz文件_python tar.gz怎么安装-问答-阿里云开发者社区-阿里云
- 非你莫属 java全球排名_TIOBE:2018年5月全球编程语言排行榜
- Java 200+ 面试题补充③ Dubbo 模块
- 转:ORA-01126: 数据库必须已装载到此实例并且不在任何实例中打开
- 搭建nginx+php后访问不到项目
- 如何用c语言从txt文件中读取数据
- sdk开发包如何使用_SDK如何使能行业?华为昇腾要用软件充分释放硬件性能
- 个人pkm软件 pim软件_个人申请软件著作权需要走哪些流程
- php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法