Shell编程知识(二)

Shell编程知识

普通变量
定义本地变量
本地变量在用户当前Shell生存期的脚本中使用。
1)普通变量定义
变量名=value
变量名=‘value’
变量名=“value”
2) 在Shell中定义变量名及为变量内容赋值的要求
变量名一般是由字母、数字、下划线组成的,可以以字母或者下划线开头。
变量的内容可以用单引号或者双引号引起来,也可以不加引号,但是这三者的含义是不同的。
3)普通变量的定义及输出的示例
提示: 变 量 名 表 示 输 出 变 量 , 可 以 用 变量名表示输出变量,可以用 c和 c 两 种 方 法 4 ) 变 量 定 义 的 基 本 技 巧 总 结 a = 192.168.1.2 − {c}两种方法 4)变量定义的基本技巧总结 a=192.168.1.2- c4a=192.168.1.2a
b='192.168.1.2- a ′ c = " 192.168.1.2 − a' c="192.168.1.2- ac="192.168.1.2a"
第一种定义a变量的方式是不加任何引号直接定义变量的内容,当内容为简单连续的数字、字符串、路径名时,可以这样用,例如:a=1, b=oldboy等。不加引号时,值里有变量的会被解析后再输出,上述变量定义中因为$a的值被解析为192.168.1.2(范例3-3执行的影响),因此新的a值就是192.168.1.2-192.168.1.2。

第二种定义b变量的方式是通过单引号定义。这种定义方式的特点是:输出变量内容时单引号里是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。

第三种定义c变量的方式是通过双引号定义变量。这种定义方式的特点是:输出变量内容时引号里的变量及命令会经过解析后再输出内容,而不是把双引号中的变量名及命令(命令需要反引起来)原样输出。
老男孩经验:
数字内容的变量定义可以不加引号,其他没有特别要求的字符串等定义最好都加上双引号,如果真的需要原样输出就加单引号,定义变量加双引号是最常见的使用场景。

5)把一个命令的结果作为变量的内容赋值的方法
对需要获取命令结果的变量内容赋值的常见方法有两种:
变量名=‘ls’
变量名=$(ls)
提示:生产场景中把命令的结果作为变量的内容进行赋值的方法在脚本开发中很常见

局部变量定义及赋值的经验小结
常规普通变量定义:
□若变量内容为连续的数字或字符串,赋值时,变量内容两边可以不加引号,例如a=123。
□变量的内容很多时,如果有空格且希望解析内容中的变量,就加双引号,例如a="/etc/rc.local U S E R " , 此 时 输 出 变 量 会 对 内 容 中 的 USER" ,此时输出变量会对内容中的 USER"USER进行解析然后再输出。
□希望原样输出变量中的内容时就用单引号引起内容进行赋值,例如:a=’ U S E R ′ 。 希 望 变 量 的 内 容 是 命 令 的 解 析 结 果 的 定 义 及 赋 值 如 下 : □ 要 使 用 反 引 号 将 赋 值 的 命 令 括 起 来 , 例 如 : a = ‘ l s ‘ ; 或 者 用 USER'。希望变量的内容是命令的解析结果的定义及赋值如下:□要使用反引号将赋值的命令括起来,例如:a=`ls`;或者用 USER使a=ls()括起来,例如:a= ( l s ) 。 变 量 的 输 出 方 法 如 下 : □ 使 用 “ (ls)。 变量的输出方法如下: □使用“ (ls)使变量名”即可输出变量的内容,常用“echo 变 量 名 ” 的 方 式 , 也 可 用 p r i n t f 代 替 e c h o 输 出 更 复 杂 的 格 式 内 容 。 变 量 定 义 的 技 巧 及 注 意 事 项 : □ 注 意 命 令 变 量 内 容 前 后 的 字 符 ‘ ‘ ( 此 字 符 为 键 盘 T a b 键 上 面 的 那 个 反 引 号 , 不 是 单 引 号 ) , 例 如 : “ C M D = ‘ l s ‘ ” 。 □ 在 变 量 名 前 加 变量名”的方式,也可用printf代替echo输出更复杂的格式内容。 变量定义的技巧及注意事项: □注意命令变量内容前后的字符``(此字符为键盘Tab键上面的那个反引号,不是单引号),例如:“CMD=`ls`”。 □在变量名前加 printfechoTabCMD=ls可以取得该变量的值,使用echo或printf命令可以显示变量的值, A 和 A和 A{A}的写法不同,但效果是一样的。
□用echo等命令输出变量的时候,也可用单引号、双引号、反引号,例如:echo A 、 e c h o " A、echo " Aecho"A"、echo ' A ′ , 它 们 的 用 法 和 前 面 变 量 内 容 定 义 的 总 结 是 一 致 的 。 □ A',它们的用法和前面变量内容定义的总结是一致的。 □ Adbname_tname,当变量后面连接有其他字符的时候,必须给变量加上大括号{},例如: d b n a m e t n a m e 就 要 改 成 dbname_tname就要改成 dbnametname{dbname}_tname。

变量定义及变量输出说明
在这里插入图片描述
建议:
□在脚本中定义普通字符串变量时,应尽量把变量的内容用双引号括起来。
□单纯数字的变量内容可以不加引号。
□希望变量的内容原样输出时需要加单引号。
□希望变量值引用命令并获取命令的结果是就用反引号或$().

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux shell 编程是指使用 shell 脚本语言编写程序来控制 Linux 操作系统。以下是一些 Linux shell 编程的详细知识点: 1. shell 脚本语言:shell 脚本语言是一种解释型语言,它可以通过命令行交互式执行,也可以通过 shell 脚本文件执行。shell 脚本语言有多种类型,包括 Bash、Korn、C Shell 等。 2. 变量shell 脚本可以定义变量,用于存储数据。变量可以是字符串、整数或数组类型。变量名以字母或下划线开头,不能以数字开头。 3. 控制流语句:控制流语句用于控制程序的执行流程,包括 if-then、for、while、case 等。 4. 输入输出:shell 脚本可以通过标准输入输出、重定向和管道等方式进行输入输出操作。标准输入输出是指 shell 脚本默认的输入输出方式。重定向是指将输入输出重定向到文件或设备。管道是指将一个命令的输出作为另一个命令的输入。 5. 函数:shell 脚本可以定义函数,用于封装一段代码并重复使用。函数的定义和调用方式与其他编程语言类似。 6. 正则表达式:shell 脚本支持正则表达式,用于匹配和替换字符串。正则表达式可以用于文件名匹配、文本搜索和替换等操作。 7. 命令行参数:shell 脚本可以接受命令行参数,用于向脚本传递参数。命令行参数可以用于控制程序的执行流程和数据输入输出。 8. 系统调用:shell 脚本可以调用系统命令和函数,用于执行系统级别的操作。系统调用可以用于文件操作、进程管理和网络操作等。 以上是 Linux shell 编程的一些常见知识点,掌握这些知识点可以让你编写出更为高效和灵活的 shell 脚本程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helmer_hanssen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值