对于很多新学shell脚本程序的人来书说,空格跟$符号的使用一直让人迷迷糊糊,下面我来说说有关于它们的使用情况。

1.定义变量时, =号的两边不可以留空格.
eg:
gender=femal————right
gender =femal———–wrong
gender= femal———–wrong
2.条件测试语句 [ 符号的两边都要留空格.
eg:
if [ $gender = femal ]; then——-right.
echo “you are femal”;
fi

if[ $gender...-----------------------wrong
if [$gender...----------------------wrong.

3.条件测试的内容,如果是字符串比较的话, 比较符号两边要留空格!
eg:
if [ $gender = femal ]; then——-right.
if [ $gender= femal ]; then——–wrong.
if [ $gender=femal ]; then———wrong.

4.如果if 和 then写在同一行, 那么,注意, then的前面要跟上 ; 号.如果 then 换行写, 那么也没问题.
eg:
if [ $gender = femal ]; then——-right.
if [ $gender = femal ]
then——————————-right.
if [ $gender = femal ] then——-wrong. then前面少了 ; 号.
提示出错信息:
syntax error near unexpected token then
同理,还有很多出错信息 比如
syntax error near unexpected token fi 等都是这样引起的.

5.if 后面一定要跟上 then. 同理
elif 后面一定要跟上 then.
不然提示出错信息:
syntax error near unexpected token else

1)if 语句后面需要跟着then,同时前面要有分号;
2) 空格非常重要,shell 会认为空格前的为一个命令,如果a=3 认为是赋值操作,如果写成a = 3,那么就会认为a为一个命令 this=`ls -l |grep ‘^-' | wc -l `
3) 操作符之间要用空格分开 ,如 test ! -d $1,其中的!和-d就要用空格分开
空格是命令解析中的重要分隔符

6. 命令和其后的参数或对象之间一定要有空格

if [ -x"~/Workspace/shell/a.sh" ];then

只有 -x 后有空格才表示紧跟其后的字符串是否指向一个可执行的文件名,否则就成了测试 -x"~/Workspace/shell/a.sh" 这个字符串是不是空。

7.取变量值的符号'$'和后边的变量或括号不能有空格

shell 脚本程序中空格 $符号的使用相关推荐

  1. php中美元符号是什么意思,js程序中美元符号$是什么

    js程序中美元符号$是什么 更新时间:2008年06月05日 19:36:01   作者: $符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的 ...

  2. MQL5:在EA和脚本程序中引用自定义指标

    MQL5:在EA和脚本程序中引用指标 第一步 声明 第二步 使用 iCustom 函数 第三步 使用CopyBuffer复制引用指标中的指定数组 最近刚对MQL5语言有一点了解. 在写指标.EA的时候 ...

  3. crontab执行shell脚本日志中出现乱码

    使用nutch开源的搜索引擎抓取网页信息,通过计划任务crontab执行shell脚本,并将启动信息记录进日志文件,但是每次都会出现乱码,如图所示 经过反复测试,排除了java程序问题,文件权限问题, ...

  4. shell脚本编写中的#!shebang详解

    Linux 中的"#!"也就是shebang Shebang这个符号通常在Unix系统的脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序. 1.              ...

  5. shell脚本调试中打开set选项

    我们在调试shell脚本的时候,不可以避免的会遇到问题,这个时候,假如我们可以跟踪到脚本到底是哪里问了问题,是哪个变量出了问题,这样就对我们的调试是很有帮助的,这里介绍一个shell里面的跟踪选项这里 ...

  6. shell脚本参数中有空格

    shell脚本参数中有空格 在shell脚本中如果有空格的处理如下: sh test.sh "hello word" echo $1 得到的是hello,而不是hello word ...

  7. Shell脚本参数值包含空格的处理

    例如输入值为:2018-06-2523:59:59,但是日期和时间有空格,由于shell中将空格作为默认分隔符,因此只能将2018-06-25传递给脚本中的参数,而23:59:59则作为之后的另一个参 ...

  8. 解决shell脚本参数传递含有空格的问题

    解决shell脚本参数传递含有空格的问题 参考文章: (1)解决shell脚本参数传递含有空格的问题 (2)https://www.cnblogs.com/zoro-robin/p/6612053.h ...

  9. 编写一个shell脚本程序,检测指定IP地址的主机是否在线

    编写一个脚本程序,检测指定IP地址的主机是否在线,如果在线则显示输出Online,否则输出Offline checkhost.sh [root@exam ~]# cd scripts [root@ex ...

最新文章

  1. SQL中的关联更新和关联删除
  2. Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
  3. Redux系列01:从一个简单例子了解action、store、reducer
  4. MongoDB-pymongo
  5. KubeCon 2018 参会记录 —— FluentBit Deep Dive
  6. beyond唱片_如何数字化您的唱片
  7. 思科模拟器叫什么_扫盲!通过型号快速识别思科路由器,交换机,服务器等设备...
  8. iOS开发--Swift RAC响应式编程初探
  9. ARMv8-A vs ARMv7 Registers
  10. springsecurity权限过滤略解
  11. AI未来 - 李开复 - 未来8成的工作受影响 - 读后感
  12. php和js封装函数,介绍javascript-ecma中的几种封装函数
  13. STM32G0系列的启动配置与程序下载
  14. CISSP 考证进度篇(持续监督中)
  15. 测试用例设计方法_等价类划分法(游戏向)
  16. 我国芯片各细分领域龙头名单
  17. 【新解】多品种小批量时代下,工业企业的成本核算方法
  18. 我的第一次知识图谱问答
  19. java大小端字节流解析_记录一个如何解决java与C++socket通信的大小端问题
  20. springboot静态资源的配置

热门文章

  1. 花飞花落花飘谢,红绡香断有谁怜!
  2. 除了ChatGPT,还能用什么计划管理软件提高效率?
  3. 前端性能优化(图片优化)
  4. 写首小诗表达我的孤独,独自一个人熬着那些只属于我一个人的夜
  5. django建立个人网站(5图文识别以及聊天机器人)
  6. 解决visio和office365冲突,无法安装visio问题
  7. 安装Visio + Windows Installer 与即点即用版本冲突 + 卸载Office + 重装Office
  8. fgetc、fputc、fputs、fgets的使用
  9. 数据库实验六---存储过程
  10. Cordova App 热更新 超详细教程