shell脚本(定义--创建--变量)

本文介绍了shell脚本中的变量概念,包括如何定义和赋值。例如,通过`var1=centos`创建了一个名为var1的变量并赋值为'centos'。

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

什么是shell脚本?
提前写好可执行语句,能够完成特定任务的文件
顺序,批量化处理
解释型程序
常见的脚本Bash Shell
Python/Perl/Ruby
JSP/PHP/ASP/CGI
JavaScript

创建shell脚本的三个步骤
1.新建文本文件
2.添加可以执行的脚本语句(命令行)
3.添加x执行权限


脚本的构成与执行
#!脚本声明(使用哪种解释器)
#注释信息(步骤,思路,用途。变量含义等)
可执行的语句


执行的脚本方式

方法一:作为“命令字”
-指定脚本文件的路径,前提是有x权限
方法二:作为“参数”
 sh 脚本文件路径
sh /root/first.sh
 source 脚本文件路径
 .脚本文件路径
./root/first.sh


调试shell脚本
直接观察执行中的输出,报错
通过sh -X 开启调试模式
在可能出错的地方设置echo



什么是shell变量?


以固定名称存放,可能会变化的值
提高脚本对任务需求,运行环境变化的适应能力
方便在脚本中重复使用


定义/赋值变量


变量名=变量值
相关注意事项
1/若指定的变量名已存在,相当于为此变量重新赋值
2.等号两边不要有空格
3.变量名由字母/数字/下划线组成,区分大小写
4.变量名不能以数字开头,不要使用关键字和特殊字符
x=12

var1=centos


定义变量
引用变量值:$变量名
查看变量值: echo $变量名,echo ${变量名}
取消变量:
变量的失效
退出定义变量的Shell环境,变量自动失效
手动取消 unset 变量名


变量类型的分类角度
存储类型
整数型,浮点型,双精度浮点型,字符型
shell脚本语言对储存类型要求较松散
使用类型
环境变量 变量名通常大写,由系统维护,用来设置环境,只有个别变量用户可以直接更改
位置变量 bash内置,存储执行脚本时提供的参数
预定义变量 bash内置,一类有特殊用途的变量,可直接调用。但不能直接赋值或修改
自定义变量 由用户自主设置,修好以及使用


环境变量
配置文件 /etc/profile ~/.bash_profile
相关操作 env 列出所有的环境变量
       set 列出所有变量
常见的环境变量
  PWD PATH USER LOGNAME UID SHELL HOME PS1 PS2


预定义变量
用来保存脚本程序的执行信息
直接使用这些变量
不能直接为这些变量赋值
$0 当前所在的进程或脚本名
$$当前运行进程的PID号
$?命令执行后的返回状态,0标示正常,1或其他值表示异常
$# 已加载的位置变量的个数
$* 所有位置变量的值


位置变量
在执行脚本时提供的命令行参数
表示为$n ,n为序号
$1 ,$2,....${10},${11},....
#!/bin/bash
echo $1 ${10} 查看第1,10个位置参数


扩展赋值操作
区分三种定界符
双引号“ ”:容许扩展,以$引用其他变量
单引号 ‘’ :禁用扩展,即便$也视为普通字符
反撇号 ``:将命令的执行输出作为变量值


read标准输入取值

read 从键盘读入变量值完成赋值
格式: read 【从键盘读入变量值完成赋值】
格式: read 【-p “提示信息”】 变量名
-p可选,-t可指定超时秒数
终端显示控制
stty -echo :关闭终端输出(无显示)
stty echo :恢复终端输出


变量的作用范围
局部变量
新定义u的变量默认只在当前Shell环境中有效
无法在子Shell环境中使用


全局变量
全局变量在当前Shell及子Shell环境中均有效
使用export可将局部变量声明为全局变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值