博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bash中的空格
阅读量:6371 次
发布时间:2019-06-23

本文共 1501 字,大约阅读时间需要 5 分钟。

空格,一个看不见的字符,很不起眼,很多人经常忽略它,导致代码出错,却还找不着北。
先了解下bash中什么时候该用空格,什么时候不该用。

1. 等号赋值两边不能有空格2. 命令与选项之间需要空格3. 管道两边空格可有可无

1、在[ ] 内部,如果只有一个值(那些因为缺少了空格而连一起的也算),不是空字符串就为真。所以在[ ] 之间的参数,也要两边有空格,而不能堆一起。

[root@noi ~]# if [ 0 ];then echo "equal";fiequal[root@noi ~]# if [ '1' ];then echo 'equal';fiequal[root@noi ~]# if [ '' ];then echo 'equal';else echo 'no equal';fino equal[root@noi ~]# if [ ];then echo 'equal';else echo 'no equal';fino equal

极具迷惑性的代码,原因上面找:

#虽然错了,双等号前后缺少空格,却得到了正确答案。[root@noi ~]# if [ 'abc'=='abc' ];then echo 'equal';else echo 'no equal';fiequal#这次就比较明了了,明显的不能,却说相等。[root@noi ~]# if [ 'abc'=='bcd' ];then echo 'equal';else echo 'no equal';fiequal

2、在bash里面,最好给变量加上双引号,防止运行出现意外。如果没有双引号,shell遇到未定义的变量或者在变量值中含有空格时,

将导致不可预料的错误。

[root@noi ~]# filename="my document" #touch生成了2个文件my和document [root@noi ~]# touch $filename [root@noi ~]# ls alias.set  a.out  default.pass  document  exists_folder  exists.txt  my  t  t1  t1.cpp  t.c  t.cpp  t.sh  wai.bat #添加双引号后,没有错误了 [root@noi ~]# touch "$filename" [root@noi ~]# ls alias.set  a.out  default.pass  document  exists_folder  exists.txt  my  my document  t  t1  t1.cpp  t.c  t.cpp  t.sh  wai.bat [root@noi ~]# ls $filename document  my [root@noi ~]# rm document my rm: remove regular empty file `document'? y rm: remove regular empty file `my'? y [root@noi ~]# ls $filename ls: cannot access my: No such file or directory ls: cannot access document: No such file or directory [root@noi ~]# ls -l "$filename" -rw-r--r-- 1 root root 0 May 23 21:30 my document

 

转载地址:http://pauqa.baihongyu.com/

你可能感兴趣的文章
spring cloud互联网分布式微服务云平台规划分析--spring cloud定时调度平台
查看>>
说说如何配置 Webpack
查看>>
小程序中使用箭头函数的问题
查看>>
走进 JDK 之 Long
查看>>
Android打地鼠游戏的修改和优化
查看>>
Java异常
查看>>
map、reduce、filter、for...of、for...in等总结
查看>>
html2canvas-实现页面截图
查看>>
入门 | 从文本处理到自动驾驶:机器学习最常用的50大免费数据集
查看>>
笔记-从源码角度分析alloc与init的底层
查看>>
消除GitHub上的历史记录
查看>>
自学 JAVA 的几点建议
查看>>
第十三天-企业应用架构模式-对象-关系元数据映射模式
查看>>
k8s与HPA--通过 Prometheus adaptor 来自定义监控指标
查看>>
虎牙直播在微服务改造方面的实践和总结
查看>>
怎样将优酷网站下载的视频KUX转MP4格式
查看>>
MongoDB 分组统计
查看>>
二进制状态码
查看>>
Vue 中 CSS 动画原理
查看>>
关于 Promise 的 9 个提示
查看>>