shell脚本

一、入门

  1. 查看shell解析器
cat /etc/shells
  1. 查看系统默认解析器
echo $SHELL
  1. 创建脚本
touch helloword.sh
  1. 脚本以#!/bin/bash开头
#!/bin/bash

echo "helloword"
  1. 执行脚本
第一种方式:
sh helloword.sh

第二种方式:
修改权限: chmod 777 helloword.sh
执行:./helloword.sh

二、多命令操作

  • 创建一个文件,写入语句
touch batch.sh
vi batch.sh
chmod 777 batch.sh
./batch.sh

在这里插入图片描述

三、shell变量

1.系统变量

$HOME $PWD $SHELL $USER

echo $HOME
echo $PWD
echo $SHELL
echo $USER
2.自定义变量
  1. 基本语法
  • 定义变量: 变量=值,等号两边不能有空格
A=1
echo $A
  • 撤销变量:unset 变量
unset A
  • 声明静态变量:readonly 变量=值
readonly B=3
echo $B
unset B
  1. 规则
  • 变量名称可以由字母、数字和下划线组成,不能以数字开头
  • 变量默认为字符串类型,不能进行数值操作
  • 等号两边不能有空格,如果有空格需要加上双引号或者单引号
A="banzhang is a leader"
echo $A
  1. 全局变量
  • 可把变量提升为全局环境变量,供其他shell程序使用,export 变量
- export A
3.特殊变量
  1. $n
  • 描述:n为数字,$0代表该脚本名称, 1 − 9 代 表 第 一 到 第 九 个 参 数 , 10 以 上 的 参 数 需 要 用 大 括 号 包 含 ( 1-9代表第一到第九个参数,10以上的参数需要用大括号包含( 1910{10})。输入参数的时候,不同参数之间以空格隔开
vi par.sh

向par.sh写入内容:
#!/bin/bash
echo "$0 $1 $2 $3"

[root@www shell]# bash par.sh 
par.sh   
[root@www shell]# bash par.sh banzhang
par.sh banzhang  
[root@www shell]# bash par.sh banzhang love
par.sh banzhang love 
[root@www shell]# bash par.sh banzhang love mm
par.sh banzhang love mm
[root@www shell]# bash par.sh banzhang love mm mm
par.sh banzhang love mm
[root@www shell]# bash par.sh banzhang love mm mmaa
par.sh banzhang love mm
  1. $#
  • 获取所有输入参数个数,常用于循环
    在这里插入图片描述
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# ./par.sh o
./par.sh o  
1
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# ./par.sh o o
./par.sh o o 
2
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# ./par.sh
./par.sh   
0
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# ./par.sh o o o
./par.sh o o o
3
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# ./par.sh o o o o
./par.sh o o o
4
  1. $ *、$@
    在这里插入图片描述
  • $ * 代表命令行中所有的参数,$*把所有的参数看成一个整体
  • $ @ 代表命令行中所有的参数,不过$@把每个参数区分对待
  1. $?
  • 最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行,如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# bash par.sh banzhang love mm
par.sh banzhang love mm
3
banzhang love mm
banzhang love mm
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# echo $?
0
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# $?
-bash: 0: command not found
[root@iZwz9bbmlfbm8e53rmdyldZ shell]# echo $?
127
  1. 脚本变量的特殊用法
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值