Linux学习之shell编程基础

在创建shell脚本文件时,必须在文件的第一行指定要使用的shell,其格式为:

#!/bin/bash

#注释

要想让shell找到test1脚本,只需采取以下两种做法之一:

        将shell脚本文件所处的目录添加到PATH环境变量中

        在提示符中用绝对或相对文件路径来引用shel脚本文件

显示消息

如果在echo命令后面加上了一个字符串,该命令就能显示出这个文本字符串。默认情况下不需要使用引号将要显示的文本字符串划定出来,但是有时在字符串中出现引号的话,就可以用单引号或双引号来划定文本字符串。可以将echo语句添加到shell脚本中任何需要显示额外信息的地方。如果想要把文本字符串和命令输出显示在同一行中,可以用echo语句的-n参数。

变量

在脚本中,可以在环境变量名称之前加上美元符($)来使用这些环境变量。除了环境变量,shell脚本还允许在脚本中定义和使用自己的变量,定义变量允许临时存储数据并在整个脚本中使用。用户变量可以是任何字母,数字和下划线组成的文本字符串。用户变量区分大小写。

使用等号将值赋给用户变量,在变量,等号和值之间不能出现空格。shell脚本会自动决定变量值的数据类型。

与系统变量类似,用户变量可以通过美元符引用。引用一个变量值时需要使用美元符,而引用变量来对其进行赋值时则不要使用美元符。

命令替换

有两种方法可以将命令输出赋给变量:

        反引号字符(`)

        $()格式

命令替换允许你将shell命令的输出赋给变量。 如testing=$(date)

重定向输入和输出

输出重定向

最基本的重定向将命令的输出发送到一个文件中。bash shell用大于号(>)来完成这项功能: 

command > outputfile

如果输出文件已经存在了,重定向操作符会用新的文件数据覆盖已有文件。如果不想覆盖文件的原有内容,而是想要将命令的输出追加到已有文件中,这种情况下用双大于号(>>)来追加数据。

输入重定向

输入重定向和输出重定向正好相反,输入重定向将文件的内容重定向到命令,而非将命令的输出重定向到文件。输入重定向的符号是小于号(<):  command < inputfile

如         wc < test6

wc命令可以对数据中的文本进行计数,默认情况下输出3个值:文本的行数,文本的词数,文本的字节数。

内联输入重定向:无需使用文件进行重定向,只需要在命令行中指定用于输入重定向的数据即可,符号位(<<)。任何字符串都可以作为文本标记,但是在数据的开始和结尾文本标记必须一致。

命令格式为:

command << marker

data

marker

管道

将一个命令的输出作为另一个命令的输入。管道被放在命令之间,将一个命令的输出重定向到另一个命令中:      command1 | command2   在Linux系统中,command1和command2会同时运行,并在内部将他们连接起来,在第一个命令产生输出的同时,输出会被立即送给第二个命令,数据传输不会用到任何中间文件或缓冲区。

执行数学运算

expr 命令:如expr 1 + 5

 其中有些表达式需要用到转义符。

 使用方括号:在bash中,在将一个数学运算结果赋给某个变量时,可以用美元符和方括号($[operation])将数学表达式围起来

bash shell数学运算只支持整数运算,若要进行任何实际的数学运算,这是一个巨大的限制。

浮点解决方案

内建bash计算器,叫做bc

bc的基本用法:

bash计算器能够识别:数字,变量,注释,表达式,编程语句,函数。可以在shell提示符下通过bc命令访问bash计算器。通过quit命令退出bash计算器。

 浮点运算是由内建变量scale控制的,必须将这个值设置为期望在计算结果中保留的小数位数。scale变量默认值是0,在scale值被设置之前,bash计算器的计算结果不包含小数位。-q命令行选项可以不显示bash计算器冗长的信息。

在bash计算器中创建的变量只在bash计算器中有效,不能在shell脚本中使用。

退出脚本

查看退出状态码:Linux提供了一个专门的变量 $? 来保存上个已执行命令的退出状态码。对于需要进行检查的命令。必须在其执行完毕后立即查看或使用 $? 变量,它的值会变成shell所执行的最后一条命令的退出状态码。一个成功结束的命令的退出状态码是0,如果一个命令结束时有错误,退出状态码是一个正数值。

exit命令:exit命令允许在脚本结束时指定一个退出状态码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值