自学内容网 自学内容网

Shell编程-变量

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:

Shell编程-什么是shell

Shell编程-变量(本章节)

Shell编程-数据类型

Shell编程-逻辑判断

Shell编程-if判断

Shell编程-if和else

Shell编程-while循环

Shell编程-for循环

Shell编程-case

Shell编程-break

Shell编程-continue

Shell编程--函数

Shell编程-案例(一)

Shell编程-案例(二)

Shell编程-小结

我们在讲Linux日常运维=环境变量env的时候就讲过环境变量,那些都是系统自带或者手工注入到的全局或者局部变量,满足的是通用性的要求,我们都可以直接使用,但是我们在写shell脚本的还需要根据自己的需要定义一些变量,只能在shell内部使用。

一、变量的定义和命名规则

  1. 命名规范:

    • Shell 变量名由字母、数字和下划线组成,但必须以字母或下划线开头。

    • 变量名应该具有描述性,以便能够清晰地表达其代表的数据含义。例如,可以使用 count 表示计数,file_path 表示文件路径等。

    • 变量名区分大小写,例如 VAR 和 var 是两个不同的变量。

  2. 定义方式:

    • 可以使用等号(=)来为变量赋值,从而定义一个变量。例如:my_variable="Hello World" 这里定义了一个名为 my_variable 的变量,并将其值设置为 "Hello World"。

    • 在赋值时,如果值中包含空格或特殊字符,需要将其用引号(单引号或双引号)括起来。例如:my_path="/usr/local/bin" 如果路径中包含空格,像 my_path="/usr/local/my folder",则必须使用引号将其括起来,以确保 Shell 正确识别。

二、变量的引用和替换

  1. 引用变量值:

    • 如前所述,可以使用 ${变量名} 或 $变量名 的方式来引用变量的值。

    • 例如,如果有一个变量 message="Hello",那么可以使用 echo $message 或 echo "${message} World" 来输出变量的值或在字符串中包含变量的值。

    • ${message} 和 $message在绝大多数情况下效果是一样的,但是在包含特殊符号等复杂的情况下建议使用${message}。

  2. 变量替换:

    • Shell 支持在命令和字符串中进行变量替换,即将变量的值插入到相应的位置。

    • 例如,如果有一个变量 file="/path/to/myfile.txt",可以使用 cat $file 来读取该文件的内容,这里 $file 被替换为实际的文件路径。

    • 还可以在变量值中包含其他变量的引用,进行嵌套的变量替换。例如,如果有 dir="/path/to" 和 file="myfile.txt",那么可以定义一个新变量 full_path="${dir}/${file}",这里 ${dir} 和 ${file} 的值被组合起来形成 full_path 的值。

三、变量类型

  1. 环境变量

    • 这些变量对于当前用户的所有进程都是可见的。

    • 它们通常以大写字母命名,例如HOMEPATHUSER等。

    • 可以使用export命令将一个普通变量转换为环境变量。

  2. 本地变量

    • 这些变量仅在当前Shell实例中可见。

    • 它们通常用于存储脚本中的临时数据。

  3. 位置变量

    • 这些变量用于存储脚本的参数。

    • $0:脚本名称。

    • $1 - $9:脚本的第一到第九个参数。

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

    • $*:所有位置参数的单个字符串。

    • $@:所有位置参数的单独引用字符串。

  4. 特殊变量

    • $?:最后一条命令的退出状态。

    • $$:当前Shell进程ID(PID)。

    • $!:最后一个后台命令的进程ID。

    • $-:当前Shell的选项。

    • $?:最后命令的退出状态

总结

1.为了让变量具有可读性,命名的时候注意规范。

2.简单的变量在引用的时候可直接使用$,复杂的变量使用${}。

3.变量统一放在脚本开头部分,更容易识别。

4.这就是真实的脚本,但是只定义了一个变量,后面备份逻辑使用这个变量就可以,这里只是只打印了变量。

#!/bin/bash
current_date=$(date +%Y-%m-%d)
echo $current_date

图片


原文地址:https://blog.csdn.net/dessler/article/details/142863061

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!