shell脚本的变量与应用

        Shell脚本是一种解释性语言,用于编写自动化任务和系统管理脚本。在Shell脚本中,变量用于存储和操作数据。变量在脚本中可以被赋值、读取和修改。    

        在shell脚本中,变量用于存储数据,可以是数字、字符串或其他类型的值。可以使用变量来存储中间结果、用户输入或从命令输出中获取的值,以便在脚本的不同部分进行引用和使用。

命令赋值法
  1. 直接赋值:使用=符号将值赋给变量,如name="John"

  2. 命令替换:使用反引号 ` 或者 $() 将命令的输出结果赋给变量,如dateStr=$(date +%Y-%m-%d)

  3. 环境变量赋值:使用export命令将变量导出为环境变量,供其他脚本或程序使用。

注意:定义变量时,变量名只能以字母或者"_"作为开头

变量名=变量值

num1="1"

num2="2"

echo "num1=$num1,num2=$num2"

变量删除

可以使用 unset 命令来删除变量。 unset 命令用于移除一个或多个变量的定义。

name="张三"
echo $name
张三
unset name
echo $name

通过标准输入来定义变量

格式:read 获取标准输入的内容给 变量

read -p "请输入一个数值来赋予变量:" i

echo $i

环境变量
变量的范围划分
  • 全局变量(Global Variables):全局变量在整个脚本中都是可见和可用的。它们可以在脚本的任何位置定义,并且可以在整个脚本的任何地方使用。全局变量对整个脚本的所有函数和命令都是可见的。
  • 局部变量(Local Variables):局部变量只在定义它们的函数或命令中可见和可用。它们的作用范围被限制在特定的函数或命令中,不能在其他函数或命令中使用。
  • 本地变量:生效范围为当前shell进程中某代码片断,通常指函数。 只能在定义它们的函数/脚本内 部中使用。

查看所有的环境变量

env

其中用处最为广泛的环境变量为

$PATH 表示可执行文件的默认路径

$USER 表示用户名称

$HOME 表示用户的宿主目录

$LANG 表示语言和字符集

$PWD 表示当前所在工作目录

环境变量的特性

  • 可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量。
  • 一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程。
  • 一般只在系统配置文件中使用,在脚本中较少使用。

环境变量的配置文件

全局配置文件:

/etc/profile,修改此文件会作用于所有用户。

用户独立的配置文件:

env ~/.bash_profile,修改这个文件只作用于当前用户。

位置变量

        位置变量是$后以数字为结尾的的变量代表着每一个变量和标准输入参数的位置。(数字是以1为开头。 1-9是正常跟在$后面即可。当数字大于或等于10,要用{ }进行使用,区别shell误识别。)

[root@localhost test]#vim test.sh

#!/bin/bash
echo ”第一个变量值为: $1“
echo ”第二个变量值为: $2“
echo ”第三个变量值为: $3“
echo ”第四个变量值为: $4“
echo ”第五个变量值为: $5“

自定义变量
  • $0 :获取当前脚本的名称(如果是软链接,显示软链接文件名)。
  • $@ :将所有参数作为独立的字符串返回。
  • $* :将所有参数作为单个字符串返回。
  • $# :获取当前命令行参数的个数。
  • $_ :获取上一个命令或脚本的最后一个参数。
  • $$ :获取当前Shell进程的PID。
  • $? :获取上一次命令的退出状态,返回0表示成功,非0表示错误。

        以上只是一些常见的变量用法,shell脚本中还有更多高级的变量操作和用法,可以根据具体需求进行学习和使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值