linux shell百度百科,shell脚本(一)

本文详细介绍了Shell脚本的基础概念、规范、变量类型(本地变量、环境变量、只读变量、位置变量)、算术运算和逻辑运算,以及test命令的使用。通过示例代码展示了如何编写和调试Shell脚本,是学习Linux Shell脚本的良好起点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本周是来马哥教育的第四周,本周重点是shell脚本的编写,本篇博客也是以shell脚本的简述为主。

一.shell脚本的概念及意义

shell脚本是linux下的一种编程方式,百度百科给出这样的释义:脚本(shell script)是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。说白了,就是为了解决linux的实际问题,临时写的一个小程序来完成当前的工作,如果需要多次使用,还能保存下来循环使用。

二.脚本的规范

脚本使用了shebang机制,即这样的格式:!#/bin/bash、!#/use/bin/python。需要简单的进行shell脚本的解释。下面举一个样例:

#!/bin/bash

# ——————————————

# Filename: hello.sh

# Revision: 1.1

# Date: 2017/08/05

# Author: Mr.Dong

# Email: Dong@gmail.com

# Website: www.magedu.com

# Description: This is the first script

# ——————————————

echo “hello world”

利用这些信息,可以很快知道这个脚本的用处,以便于工作的使用。

在运行的时候可以使用下面两条命令进行脚本调试

bash -n hello.sh 来查看脚本的语法错误

bash -x hello.sh 可以查看脚本的执行步骤

三.变量

1.本地变量

本地变量只对当前shell有效,对子shell无效(SHLVL查看是几级shell)。

变量赋值:name=’value’

字符串赋值:name=”root”

变量引用:name=”$USER”

命令引用:name=COMMAND name=$(COMMAND)

显示已定义的所有变量:set

删除变量:unset name

2.环境变量

环境变量对当前SHELL及其子SHELL均有效。

变量的声明和赋值命令:

export name=VALUE

declare -x name=VALUE

变量的引用:$name,${name}

显示所有的环境变量命令:

env printenv export declare -x

bash自带环境变量:

PATH SHELL USER UID HOME PWD SHLVL LANG MAIL HOSTNAME HISTSIZE

3.只读变量

声明只读变量:

readonly name

declare -r name

查看只读变量: readonly -p

4.位置变量

$1, $2, … :对应第1 、第2 等参数,shift [n] 换位置

$0:  命令本身

$:  传递给脚本的所有参数,全部参数合为一个字符串

$@:  传递给脚本的所有参数,每个参数为独立字符串

$#:  传递给脚本的参数的个数

$@ $  只在被双引号包起来的时候才会 有 差异

set —

四.算术运算与逻辑运算

1.算术运算

算数运算符:+ – * / %(取余) **(乘方)

常用的运算:

(1) let var= 算术表达式

(2) var=$[ 算术表达式]

(3) var=$(( 算术表达式))

(4) var=$(expr arg1 arg2 arg3 …)

(5) declare –i var =  数值

(6) echo ‘ 算术表达式’ | bc

产生随机数命令:echo $[$RANDOM%number]  0-number之间的随机数

赋值运算:+= -= *= /= %=

自增和自减:

let var+=1

let var++

let var-=1

let var–

2.逻辑运算

true=0 false=1

与 1&&1=1 1&&0=0 0&&1=0 0&&0=0

或 1||1=1 1||0=1 0||1=1 0||0=0

非 !1=0 !0=1

五.test命令

test命令是shell环境中测试条件表达式的实用工具。

例如:test “$A” == “$B” && echo “Strings are equal”

[ “$A” == “$B” ] && echo “Strings are equal”

这两种表述表达同一种意思。

[[  ]]表示支持正则表达式

数值比较:         字符串比较:

-gt 是否大于      >

-ge 是否大于等于  >=

-eq 是否等于      ==

-ne 是否不等于    !=

-lt 是否小于      <

-le 是否小于等于  <=

本篇博客只是对本周的shell脚本的学习的总结,后面还有拔高部分的学习,未完待续~

原创文章,作者:Mr.DONG,如若转载,请注明出处:http://www.178linux.com/83768

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值