bash shell命令学习之构建脚本篇

本文介绍了如何使用Bash Shell进行脚本编程,包括使用多个命令、创建脚本文件、显示消息、使用变量、重定向输入和输出、管道、执行数学运算以及退出脚本。通过示例详细讲解了每个主题,是初学者学习Bash Shell脚本的实用教程。
摘要由CSDN通过智能技术生成

本博客内容来自《Linux命令行与shell脚本编程大全》第十一章

目录

1、使用多个命令

2、创建shell脚本文件

3、显示消息

4、使用变量

环境变量

用户变量

命令替换(重要)

5、重定向输入和输出

输出重定向

输入重定向

6、管道

7、执行数学运算

expr命令

使用方括号

浮点解决方案

bc的基本用法

在脚本中使用bc

8、退出脚本

查看退出状态码

exit命令


1、使用多个命令

最简单的脚本:在命令行界面直接输入多个bash shell命令,用分号隔开

[root@izwz9194nuv8g0cwqfqsh3z ~]# date;who
Sun Mar  3 21:40:11 CST 2019
root     pts/0        2019-03-03 20:17 (183.157.160.36)

如上所示,date显示当前日期和时间,who显示是谁登陆到了系统上。

2、创建shell脚本文件

必须在文件第一行指定要使用的shell,其格式为

#!/bin/bash

#后面的一般为注释,shell不处理,但是第一行是例外。惊叹后后面会告诉shell用哪个shell来运行脚本。

在shell脚本中不需要分号隔开命令,回车行即可

#!/bin/bash

# this is an example

date

who

将以上内容保存为名为test的脚本文件,接下来运行脚本,两种途径:

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

2.在提示符中用绝对或相对文件路径来引用shell脚本文件。

我们一般采用第二种方式,将脚本文件的确切位置告诉shell,为了引用当前目录下的文件,可以在shell中使用单点操作符:

[root@izwz9194nuv8g0cwqfqsh3z ~]# ./test1
-bash: ./test1: Permission denied

我们没有执行文件的权限,查看文件权限:

[root@izwz9194nuv8g0cwqfqsh3z ~]# ll test1
-rw-r--r-- 1 root root 21 Mar  4 21:40 test1

我们发现文件没有被赋予执行权限,使用chmod命令赋予文件属主执行权限:

[root@izwz9194nuv8g0cwqfqsh3z ~]# chmod u+x test1
[root@izwz9194nuv8g0cwqfqsh3z ~]# ./test1
Mon Mar  4 21:45:45 CST 2019
root     pts/0        2019-03-04 21:29 (183.157.160.23)

搞定!

3、显示消息

显示消息一般用echo命令,一般不需要引号就可以显示出文本字符串,如:

[root@izwz9194nuv8g0cwqfqsh3z ~]# echo this is a test
this is a test

但是如果文本字符串中有引号就需要注意,要加引号,如果有单引号就套双引号,有双引号就套单引号:

[root@izwz9194nuv8g0cwqfqsh3z ~]# echo let's see if this'll work
lets see if thisll work
[root@izwz9194nuv8g0cwqfqsh3z ~]# echo "let's see if this'll work"
let's see if this'll work

[root@izwz9194nuv8g0cwqfqsh3z ~]# echo he said "good job"
he said good job
[root@izwz9194nuv8g0cwqfqsh3z ~]# echo 'he said "good job"'
he said "good job"

如果想把文本字符串和命令输出显示在同一行,可以加 -n 参数:

编辑一个名为test1的文件,输入以下内容并保存退出:

#!/bin/bash

echo the time is :
date
echo the user is :
who

执行脚本:

[root@izwz9194nuv8g0cwqfqsh3z ~]# ./test1
the time is :
Wed Mar  6 10:28:57 CST 2019
the user is :
root     pts/0        2019-03-06 10:17 (183.157.160.23)

可以看到echo输出与命令输出不在同一行,在脚本中的echo命令后加参数-n:

#!/bin/bash

echo -n the time is :
date
echo -n the user is :
who

执行脚本:

[root@izwz9194nuv8g0cwqfqsh3z ~]# ./test1
the time is :Wed Mar  6 10:31:20 CST 2019
the user is :root     pts/0        2019-03-06 10:17 (183.157.160.23)

4、使用变量

环境变量

使用set命令可以显示当前环境变量完整的列表

[root@izwz9194nuv8g0cwqfqsh3z ~]# set
BASH=/bin/bash
......
-gnu")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值