Shell脚本一:编程基础

本文详细介绍了Shell脚本的基础知识,包括Shell的格式、执行和调试方法、echo命令、变量、注释、字符串操作、日期函数、管道、tee命令、文件重定向、cron任务调度、后台运行及退出程序。同时讲解了Shell的基本语法,如if语句、for和while循环、break和continue的使用,以及函数的定义和调用。
摘要由CSDN通过智能技术生成

一、Shell初识

Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果。利用shell脚本可以进行系统管理,文件操作等。

1、格式

在创建shell脚本时,必须在第一行指定要使用的shell,其格式为:
#!/bin/bash
(#):用作注释行,第一行是个列外,#后面的惊叹号会告诉shell用哪个shell来运行脚本,这里是可以使用bash
shell脚本的后缀一般是 sh结尾,写在shell里面的命令是按照行,从上往下执行的。

2、执行和调试

1)要加上执行权限。
chmod +x test.sh

用点号(.)执行,如 ./test.sh
或者:sh test.sh
假如使用sh命令执行脚本文件,可以没有+x 和 第一行解释器#!/bin/bash
假如不是使用sh命令,那么需要+x 且 第一行需要添加解释器#!/bin/bash

2)三种常见的调试
在命令行提供参数
[root@vm01 test]# sh -x test.sh #是debug模式
在这里插入图片描述
在脚本开头提供参数

#! /bin/sh -x

在脚本中用set命令启用或禁用参数

#! /bin/sh

if [ -z "$1" ]; then
    set -x
    echo "ERROR: Insufficient Args."
    exit 1
    set +x
fi

set -x和set +x分别表示启用和禁用-x参数,这样可以只对脚本中的某一段进行跟踪调试。

3、echo

echo命令后面可以加上字符串,输入到控制台,可以用单引号或双引号划定文本字符串。

echo "hello\n\n"
echo -e "hello\n\n"
echo "hello"
echo -n "hello"

在这里插入图片描述

4、变量

1)定义变量:变量名不加美元符号($)
your_name=“11hao”
注意,变量名和等号之间不能有空格
DATE=`date` #这种是动态变量

除了显式地直接赋值,还可以用语句给变量赋值,如:
for file in `ls /etc` #后面的 ls /etc引用的符号不是单引号,是数字1前面那个键。是用来动态获取命令执行后的结果的。

2)使用变量
your_name=“qinjx”
#两种方式均可
echo $your_name
echo ${your_name} #加花括号是为了帮助解释器识别变量的边界
如:echo ${your_name} what

3)给变量传递参数
$1,$2,$3等,在shell代表传递的参数顺序

[root@vm01 test]# sh test.sh 11 hao
在这里插入图片描述

5、注释

以“#”开头的行就是注释,会被解释器忽略。
sh里没有多行注释,只能每一行加一个#号

6、字符串

字符串是shell编程中最常用最有用的数据类型
字符串可以用单引号,也可以用双引号,也可以不用引号

单引号字符串的限制:
·单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
·单引号字串中不能出现单引号(对单引号使用转义符后也不行)

1)字符串操作
拼接字符串
your_name=“11hao”
greeting=“hello, “$your_name” !”
greeting_1=“hello, ${your_name} !”
echo $greeting $greeting_1

获取字符串长度
string=“abcd”
echo ${#string} #输出:4

提取子字符串
string=“alibaba is a great company”
echo ${string:1:4} #输出:liba

7、转义符

用反斜杠可以转移shell里面的一些特殊的符号,比如说要正确打印$符号,那么在前面加一个反斜杠即可。

8、date日期函数

按照格式输出:
today=$(date +%y%m%d)
或者
today=`date +%y%m%d`
在这里插入图片描述

9、管道

可以通过 | 把一个命令的输出传递给另一个命令做输入。
提示:awk里面的$1,表示输出第一列
df -k | awk ‘{print $1}’ | grep -v “文件系统”
在这里插入图片描述

10、tee

tee命令把结果输出到标准输出,且生成一个副本到相应文件。
tee -

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值