`
ylh2003
  • 浏览: 2168 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

shell中的空格

阅读更多

在编写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.定义变量时, =号的两边不可以留空格. eg: gender=femal————right gender =femal———–wrong gender= femal———–wrong 2.条件测试语句 [ 符号的两边都要留空格. eg: if [ $gender = femal ]; then——-...

    shell脚本替换文件中的tab为空格,删除空白行(空白行:有空格而没有字符)

    shell脚本替换文件中的tab为空格,删除空白行(空白行:有空格而没有字符)

    Shell处理带空格的文件名的方法

    但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是做为文件名的一部分。 看下面的脚本,我们可以了解的更清楚: 执行的结果如下: 实际上,...

    Shell中去除字符串前后空格的方法

    在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理。  下面是一个简单示例: [root@localhost ~]# echo ' A B C ' | awk '{gsub(/^\s+|\s+$/, );print}' ^\s+ 匹配行首一个或多个空格 ...

    Linux中Shell截取某行某列信息

    背景:执行shell命令,抓取shell返回信息中的所需信息,已udhcpc为例获取DNS的地址。 暂不作处理,执行udhcpc。 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n...

    Shell中处理包含空格的文件名实例

    ### Shell中处理包含空格的文件名实例 在日常的Shell脚本开发过程中,经常会遇到文件名中包含空格的情况。这种情况下,如果处理不当,可能会导致脚本无法正确识别文件名,从而引发一系列的问题。本文将通过一个具体...

    处理Shell脚本中带有空格的变量(bash脚本)

    在编写Bash脚本时,有时我们可能会遇到文件名或路径中包含空格的情况,这在处理批处理任务时会带来挑战。本文将详细介绍如何在Bash脚本中正确处理这些带有空格的变量。 首先,问题出在当Bash默认使用内部字段分隔符...

    shell脚本修改json中某个字段的值

    在IT行业中,shell脚本是Linux/Unix系统中进行自动化任务处理的一种强大工具。当我们需要对JSON文件中的特定字段进行修改时,shell脚本结合awk和sed命令可以提供灵活且高效的解决方案。以下将详细介绍如何使用这些...

    shell脚本与Makefile区别.docx

    此外,shell 中 = 变量不允许有空格,而 Makefile 中 = 两边允许有空格。这两种语法的不同使得它们在不同的环境中使用。 在 Makefile 中,shell 语法有一些特殊性。例如,在 Makefile 文件的目标项冒号后的另起一行...

    shell脚本语言.pdf

    * ash:ash shell 是由 Kenneth Almquist 编写的, Linux 中占用系统资源最少的一个小 shell,它只包含 24 个内部命令。 * csh:csh 是 Linux 比较大的内核,它由以 William Joy 为代表的共计 47 位作者编成,共有 ...

    Shell实用技巧:快速去除字符串中的空格

    本文将详细介绍三种Shell实用技巧,帮助你快速去除字符串中的空格。 首先,让我们看一个实际场景:在构建词库时,如果关键词之间存在空格,可能导致去重功能失效。为了解决这个问题,我们可以利用Shell命令来去除...

    传带空格的命令行参数

    在探讨如何传递包含空格的命令行参数时,我们首先需要理解命令行参数的基本概念以及在实际编程场景中如何正确地处理这些参数。本篇内容将深入解析如何在不同的编程环境中处理带有空格的命令行参数,并通过示例来解决...

    大括号在shell中的使用

    在Shell脚本编程中,大括号({})扮演着至关重要的角色,它们被广泛用于各种语法结构和操作。下面将详细介绍大括号在Shell中的主要用途。 1. **数组定义**:在Shell中,大括号用于定义数组。例如,创建一个包含三个...

    shell脚本学习指南,中文清晰带书签

    - **定义与作用**:Shell脚本是用于Unix/Linux系统中的自动化任务的一种编程语言。它通过一系列的命令来实现对系统的控制和管理,可以极大地提高工作效率,减少重复性劳动。 - **应用场景**: - 系统管理和维护:...

    大数据技术之Shell.docx

    本资源是关于大数据技术中的 Shell 技术的详细文档,涵盖了 Shell 的概述、Shell 脚本入门、变量等方面的知识点。 章节 1:Shell 概述 Linux 提供的 Shell 解析器有多种,包括 /bin/sh、/bin/bash、/sbin/nologin...

    shell script编程学习笔记

    - 在一串命令中,还可以通过其他的命令提供的信息,例如想要获取内核版本的信息: `version=$(uname -r)`,然后 `echo $version`,结果可能是 `2.6.18-128.el5`。 - **变量累加**: - 若要将变量内容累加,则可以...

    shell 13问 简体中文版.pdf

    - **内部字段分隔符 (IFS)**:Shell使用IFS来区分命令行中的各个字段,例如空格、制表符等。 通过以上知识点的讲解,我们可以了解到Shell不仅是Linux系统中重要的组成部分,也是用户与系统交互的重要工具。了解...

Global site tag (gtag.js) - Google Analytics