bash基本语法

原创 2015年11月21日 19:10:28

本文就是自己整理的一个入门说明。
先贴个例子:

#!/bin/bash
lines=0
while read -r line
do
    let lines=lines+1
    if(($lines == 10));then
        echo "$line"
    fi 
done<file.txt

注释

对于一门脚本语言,我首先思考的问题是怎么注释。
#是bash中的注释符号。
然后你特么发现第一行不是被注释掉么?
其实一开始我也纳闷。
毕竟解析器是也是软件。
它并不一定一看到#就全部忽略整行。
这个解释有点勉强?
确实的。
其实我们需要重新理解注释。
注释的意思可以是解释器不去执行。
但却可以给系统加载该脚本时提供信息。
从这个意义上来说#!确实是注释。
只是这个注释是告诉系统用那个shell去执行。
而最后真正执行的shell是会忽略掉这行的。
这玩意在unix geek眼里一般叫shebang
所以这玩意对程序加载器来说是有用的。
而且还可以在这一行里传参数。
对最终的解释器来说又确实和注释一样不产生作用。
更好的解释在这里
毕竟脚本可以用任何语言写成。
其实如果你不加这一行也是可以的。
一个注释扯这么多有点无聊。


变量

说完注释说变量
bash的变量真牛逼
直接定义
比如
state=looksgood
不过还是建议加上引号
state=’looksgood’
引号在字串中间有空格是必须的
那如何引用?
变量前加echostate
注意变量赋值时=号两端不要有空格
原因是shell将每一行命令视为命令及其参数的集合
以空格分隔

条件语句

变量说完自然就要比较
条件语句如何对比?
条件语句语法自然是 if语法
参见文章最开始的例子
套用下官方的语法:

if test-commands; then
    consequent-commands;
[elif more-test-commands; then
    more-consequents;]
[else alternate-consequents;]
fi

尼玛,感觉瞬间高大上。
语法看起来简单,那就看看如何比较。
套用官方文档:

Conditional expressions are used by the [[ compound command and the test and [ builtin  commands.

好想有三种条件表达式语法。
据说比较形式很多种,既然我也没入门那就说简单的:

  • [] 比较运算,根据参数不同而不同,详见manual吧
    这里举个例子:

    if [ expression ]

其中express可以为:

if [ '$state' = 'looksgood' ] ; then
    echo "yes"
fi

循环

说完条件说循环
bash中多钟循环

until test-commands; do consequent-commands; done
while test-commands; do consequent-commands; done
for name [ [in [words ...] ] ; ] do commands; done

还是那句话,预知详情,请看文档,因为文档实在写的比我好多。

数据输入

Bash基本语法

变量赋值的基本操作
  • xxpresent
  • xxpresent
  • 2017年05月03日 15:57
  • 283

bash基本语法

转载自:http://www.eetop.cn/blog/html/92/23692-18602.html
  • caolin23
  • caolin23
  • 2014年04月21日 13:58
  • 371

Bash 基本语法

shell的基本语法 赋值一般采用以下形式:变量名=字符串 1. “=”号两边是不能有空格的,不然会出错的。(这点初学者特别容易出错) 2. 若赋值语句中,“=”后面没有任何内容,则该变量为一个...
  • liufei_learning
  • liufei_learning
  • 2012年10月30日 16:48
  • 1258

SHELL编程之语法基础

前言在此需要特别注明一下,本文叫做shell编程其实并不准确,更准确的说法是bash编程。考虑到bash的流行程度,姑且将bash编程硬说成shell编程也应没什么不可,但是请大家一定要清楚,shel...
  • renwotao2009
  • renwotao2009
  • 2016年06月08日 15:22
  • 565

bash (2) 基本语法

最简单的例子 —— Hello World! 关于输入、输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 最简单的例子 —— Hello Wo...
  • php_boy
  • php_boy
  • 2011年05月13日 14:07
  • 868

shell bash的基本语法

 变量:       系统常变量:         UID,PWD,所有的系统环境变量都可以认为是shell中的常量        $#:位置参数的个数        $*: 所有位置参数的内容   ...
  • weaky
  • weaky
  • 2010年01月03日 10:57
  • 147

shell bash 脚本基本语法

1 Shell介绍 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Bat...
  • lqxandroid2012
  • lqxandroid2012
  • 2015年09月14日 11:00
  • 402

NuttX bash的基本语法

阅读 PX4代码时会涉及到NuttX系统的语言解释器Shell,这里的Shell应该采用的是bash,因此整理一下bash的基本语法。 1. 最简单的例子——Hello World #!/bin/...
  • xiaoshuai537
  • xiaoshuai537
  • 2017年03月20日 18:50
  • 212

BASH 的基本语法

BASH 的基本语法 最简单的例子 —— Hello World! 关于输入、输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控...
  • kee131
  • kee131
  • 2015年01月23日 17:09
  • 335

Bash 脚本基本语法

Bash 脚本基本语法 1 What is a Bash script 2 Variables 2-1 Special variables 2-2 Setting our own variables ...
  • blue0bird
  • blue0bird
  • 2017年11月24日 23:31
  • 43
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bash基本语法
举报原因:
原因补充:

(最多只允许输入30个字)