用linux的shell编程,哪些地方要加空格啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用linux的shell编程,哪些地方要加空格啊?相关的知识,希望对你有一定的参考价值。

参考技术A shell默认用空格作为命令字段分隔符,理解了shell解释命令时的分割重组特性,也就知道这个问题的答案了。具体说两点:
1)变量赋值,=两边不加空格,如:myVal=1
2)test表达式中要加空格:if
[
myVal
-eq
2
];
then

shell编程基本语法

编写shell脚本的时候,最前面要加上一行:#!/bin/bash,因为linux里面不仅仅只有bash一个解析器,还有其它的,它们之间的语法会有一些不同,所以最好加上这一句话,告诉系统要用这个解析器。

一.shell变量

shell变量和一些编程语言不同,一般shell的变量赋值的时候不用带“$”,而使用或者输出的时候要带“$”。加减乘除的时候要加两层小括号。括号外面要有一个“$”,括号里面的变量可以不用“$”。需要注意的是,变量赋值,变量使用的时候不能有空格,否则会被解析成命令,报错无此命令。

例子:
技术分享图片
结果如下图:
技术分享图片
二.shell变量表达式
技术分享图片
例子:
技术分享图片
结果如图:
技术分享图片
三.shell测试判断test或[]

需要注意的是使用[]的时候必须要每个变量之间都要有空格,和左右中括号也要有空格,否则报错。
技术分享图片
结果如图:
技术分享图片
四.shell条件分支结构语句

1.单分支判断语句

格式:if 条件 ; then 结果 fi ,最后面一定要有fi,在shell脚本里面,控制分支结构结束都要和开头的单词相反,例如,if <–> fi,case <–> esac。
技术分享图片
结果如图:
技术分享图片
2.双分支判断语句
技术分享图片
结果如图:
技术分享图片
3.多分支判断语句

多分支判断有两种,和C语言的一样 if else if,case。只是形式上有一些不同。
技术分享图片
结果如图:
技术分享图片
技术分享图片
结果如图:
技术分享图片
五.shell循环语句

1.while语句

while语句是只要条件为真就执行下面语句。
格式:
while 条件
do
语句
done

需要注意的是,这里的条件除了 while true 可以这样写,其它的条件都要用 test或者 []来判断
技术分享图片
技术分享图片
2.until语句

until语句是只要条件为假就执行下列语句
格式:
until 条件
do
语句
done
技术分享图片
结果如图:
技术分享图片
3.for语句

格式:
for 变量 in 列表
do
语句
done
技术分享图片
结果如图:
技术分享图片
六.shell函数

格式:
[function] funcName()
{
语句
[return 返回值]
}
返回值是可选的,如果没有显示return 则默认返回最后一条语句执行的结果。

Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值表示失败。如果 return 其他数据,比如一个字符串,往往会得到错误提示:“numeric argument required”。

如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。

函数参数从$1到$n,$0 是文件名。

例子:
技术分享图片
结果如图:
技术分享图片
返回字符串,报错
技术分享图片
结果如图:
技术分享图片

以上是关于用linux的shell编程,哪些地方要加空格啊?的主要内容,如果未能解决你的问题,请参考以下文章

linux shell:能从原理上给我讲讲为啥要写 ((a=$a+1))?

codesys 如何用C语言进行编程?我在创建程序的时候没有C语言的选项,是在哪个地方选择啊?

现在很多企业招会Linux shell脚本编程的人,请问都要用Linux shell做一些啥工作啊?

shell编程基本语法

linux shell 问题,清除文件中的空格

linux_shell 编程学习-初识she'll