基础脚本

使用多个命令

一个命令行使用多个命令用 分号(;)隔开

创建shell脚本

#!/bin/bash

井号(#)用作注释行,shell并不会shell脚本中的注释行。然而shell脚本文件的第一行是个例外,#后面的!会告诉shell用哪个shell来运行脚本

显示消息 echo命令

echo可以用单引号或者双引号来划定文本字符串,双引号可以引用变量,单引号不可以。

$echo 'Rich says "scripting is easy".'
Rich says "scripting is easy".

如果想把文本字符串和命令输出到同一行可以用-n参数

$echo -n "The time and date are : " ; date

变量

用户变量有数字字母下划线组成,长度不超过20,区分大小写
引用变量使用美元符号$

#!/bin/bash
var1=30
echo $var1

输出

30

要引用$符号需要加上 ‘’

$echo "The cost of the item is \$15"

引用变量的值需要使用 符 号 , 但 是 引 用 变 量 对 其 进 行 赋 值 则 不 要 使 用 符号,但是引用变量对其进行赋值则不要使用 使符号

#!/bin/bash
var1=30
var2=var1
var3=$var1
echo "var2 is $var2, var3 is $var3"

输出

var2 is var1, var3 is 30

命令替换

两种方法:
方法一:反引号字符(`)
方法二:$()格式

#!/bin/bash
date1=`date`
date2=$(date)
echo "date1 is : " $date1
echo "date2 is : " $date2

输出

date1 is :  2020年 06月 21日 星期日 14:44:16 CST
date2 is :  2020年 06月 21日 星期日 14:44:16 CST

重定向输入和输出

输出重定向

格式: command > outputfile
追加数据: comman >> outputfile

输入重定向

格式:command < inputfile
内联格式: command << inputfile #必须指定一个文件标记来划分输入数据的开始和结尾

$wc << EOF
>test string 1
>test string 2
>test string 3
>EOF

结果为:

3   9   42

管道

格式:command1 | command2
管道最流行的用法之一是将命令产生的大量输出通过管道传递给more命令

$apt list --installed | sort | more

执行数学运算

expr命令(不做介绍)

使用[],仅支持整数运算

$var=$[1+2+3*1+8/2]
$echo $var

输出

10

浮点数

bash计算器(bc)

bc能够识别:数字(整数和浮点数)、变量(简单变量和数组)、注释(#开头或者/**/)、表达式、编程语句、函数

在命令行中使用bc

$bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

退出时输入quit

在shell中使用bc

可以用命令替换运行bc命令,格式如下
variable=$(echo “options; expression” | bc)
options:允许设置变量,可用 ’ ; ’ 隔开
expression:数学表达式

#!/bin/bash
#scale=4 表示保留4位小数
var=$(echo "scale=4; 3.14159 / 3" | bc)
echo The answer is $var

输出

The answer is 1.0471

bc与输入重定向
格式:
variable=$(bc << EOF
options
statements
expressions
EOF
)
EOF标记了内联重定向数据的起止

#!/bin/bash
var1=3.14
var2=1.1
var3=$(bc << EOF
scale=4
a1=($var1+$var2)
a2=($var1*var2)
a1+a2
EOF
)

输出

The answer is 4.24

退出脚本

使用$?查询退出码,按照惯例,一个成功的命令退出码是0,范围(0~255)

$date
2020年 06月 21日 星期日 15:32:01 CST
$echo $?
0

错误退出码

状态码描述
0命令成功结束
1一般性未知错误
2不适合的shell命令
126命令不可执行
127没找到命令
128无效的退出函数
128+x与linux信号x相关的严重错误
130通过ctrl+c命令种植的命令
255正常范围之外的退出码

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

#!/bin/bash
var1=10
var2=30
var3=$[$var1+$var2]
exit $var3

执行命令

$./test.sh
$echo $?
40
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值