Shell编程

本文详细介绍了Shell脚本编程的基础和高级技巧,包括注释、变量、重定向、数学运算、控制结构,如if-then、for、while,以及如何处理用户输入、输出和信号。此外,还探讨了sed和gawk这两个强大的文本处理工具。
摘要由CSDN通过智能技术生成

shell脚本编程

注意 本人的博客都迁移到本人自己搭建的博客地址,通过此处可查看。

构建基本脚本

注释格式
#!/bin/sh

# FILENAME: test_shell
# AUTHOR:   Javy
# Email:    xujavy@gmail.com
# PURPOSE:  Demonstration of comment style
# HISTORY:  1 May, 2018    Created
#           5 May, 2018    Modified to show mods
显示消息
echo This is a test

说明:

  • -n:输出在同一行
使用变量
1. 环境变量
  • set 显示所有的当前环境变量列表

例如:

#!bin/bash
# display user information from the system.
echo "User info for userid: $USER"
echo UID: $UID
echo HOME: $HOME
2. 用户变量
3. 命令替换
  • 反引号字符( `)

  • $()格式

#!bin/bash
testing=$(date)
重定向输入和输出
1. 输出重定向

command > outputfile

2. 输入重定向

command < outputfile

管道
执行数学运算
1. expr命令
expr 1 + 5
2. 使用方括号

$[ operation ]

3. 浮点解决方案
  • bc的基本用法
bc -q

quit
2. 在脚本中使用bc

variable=$(echo "options; expression" | bc)

说明:

options:设置变量,允许多个变量可以用分号隔开。

expression:定义bc执行的数学表达式。

variable=$(bc << EOF options statements expression EOF )

退出脚本
1. 查看退出状态码

$?可查看退出状态

说明:

状态码 描述
0 命令成功结束
1 一般性未知错误
2 不适合的shell执行命令
126 命令不可执行
127 没找到命令
128 无效的退出参数
128+x 与Linux信息x相关的严重错误
130 通过Ctrl+C终止的命令
255 正常范围之外的退出状态码
2. exit命令

可以指定退出码exit num,num表示0~255之间的数,如果大于将以取模的形式返回。

使用结构化命令

使用if-then语句

格式:

if command then
    commands
fi

说明:

if后面的command是一个命令,如果命令退出代码是0,then部分就会被允许,如果是其他码then部分不会被执行。

使用if-then-else语句

格式:

if command then
  commands
else
  commands
fi
嵌套if
test命令

test condition

if test condition then
  commands
fi

也可以写为:

if [ condition ] then
  commands
fi

test命令可以判断的三类条件:

  • 数值比较

  • 字符串比较

  • 文件比较

1. 数值比较
比较 描述 比较命令说明
n1 -eq n2 n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值