shell中如何处理换行符的
来源:2-7 对于shell编程中,使用单引号和双引号时趟过的一些坑有哪些
matthew21
2021-11-02
- 命令行中需要
\
续行,shell脚本内部需要吗? - shell需要某个符号作为结尾吗?比如java中的分号,javascript中可用分号可不用
- shell 一行命令中途航换行写 shell 如何处理
搞不懂,这里不换行也是正确的
#!/bin/bash
var1=hello var2="a b c"
echo $var1
echo $var2
这里不换行,第二个echo被当成字符串了
#!/bin/bash
var1=hello var2="a b c"
echo $var1 echo $var2
所以 shell对于换行和不换行到底是怎么约定的,有没有资料可以看看
写回答
1回答
-
您的第一个问题:脚本中是否需要换行?
答:shell脚本本身就是命令集合,依次执行,那么如何区分一条指令,就是通过回车换行来识别。所以在脚本中换行依然需要使用 \ 字符来告知 shell 下一行内容仍然是一条指令内的。比如我想定义一个SQL字符串变量,需要格式化以便更清晰阅读,可以如下定义
您的第二个问题:正如第一个问题一样,java或其他语言是以分号结束一条语句,shell就是以回车换行作为一个指令结束,或者shell也支持以分号作为一个指令结束的标识,如下图
您的第三个问题:看第一个问题即可。
最后回答您的这个问题
#!/bin/bash var1=hello var2="a b c" echo $var1 echo $var2
这里之所以使用echo输出的时候,变量并没有转换,原因是没有加双引号;echo指令比较特殊,不加双引号,会把后面的搜当成常规字符串输出
这些的确是shell比较误导人的地方,这也是我常说的shell并不像其他高级语言一样,有一些不严谨。
这些也并不一定处处用到,多写脚本就明白了
112021-11-27
相似问题