谷动谷力

 找回密码
 立即注册
查看: 906|回复: 0
打印 上一主题 下一主题
收起左侧

【Shell脚本】Shell脚本程序开发--变量

[复制链接]
跳转到指定楼层
楼主
发表于 2023-8-26 15:24:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
【Shell脚本】Shell脚本程序开发--变量


Shell变量概述

跟许多程序设计语言一样,你可以在 bash 中创建变量。

Bash 中没有数据类型,bash 中的变量可以保存一个数字、一个字符、一个字符串等等。同时无需提前声明变量,给变量赋值会直接创建变量。

变量命名原则

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。

声明变量

访问变量的语法形式为:${var} 和 $var 。

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,所以推荐加花括号。
  1. word="hello"
  2. echo ${word}
  3. # Output: hello
复制代码

只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
  1. rword="hello"
  2. echo ${rword}
  3. readonly rword
  4. # rword="bye"  # 如果放开注释,执行时会报错
复制代码

删除变量

使用 unset 命令可以删除变量。变量被删除后不能再次使用。unset 命令不能删除只读变量。
  1. dword="hello"  # 声明变量
  2. echo ${dword}  # 输出变量值
  3. # Output: hello
复制代码

变量类型

局部变量 - 局部变量是仅在某个脚本内部有效的变量。它们不能被其他的程序和脚本访问。
环境变量 - 环境变量是对当前 shell 会话内所有的程序或脚本都可见的变量。创建它们跟创建局部变量类似,但使用的是 export 关键字,shell 脚本也可以定义环境变量。

常见的环境变量:

变量        描述
$HOME        当前用户的用户目录
$PATH        用分号分隔的目录列表,shell 会到这些目录中查找命令
$PWD        当前工作目录
$RANDOM        0 到 32767 之间的整数
$UID        数值类型,当前用户的用户 ID
$PS1        主要系统输入提示符
$PS2        次要系统输入提示符

示例-- Shell脚本
  1. #!/usr/bin/env bash

  2. ################### 声明变量 ###################
  3. name="world"
  4. echo "hello ${name}"
  5. # Output: hello world

  6. ################### 输出变量 ###################
  7. folder=$(pwd)
  8. echo "current path: ${folder}"

  9. ################### 只读变量 ###################
  10. rword="hello"
  11. echo ${rword}
  12. # Output: hello
  13. readonly rword
  14. # rword="bye"  # 如果放开注释,执行时会报错

  15. ################### 删除变量 ###################
  16. dword="hello" # 声明变量
  17. echo ${dword} # 输出变量值
  18. # Output: hello

  19. unset dword # 删除变量
  20. echo ${dword}
  21. # Output: (空)

  22. ################### 系统变量 ###################
  23. echo "UID:$UID"
  24. echo LOGNAME:$LOGNAME
  25. echo User:$USER
  26. echo HOME:$HOME
  27. echo PATH:$PATH
  28. echo HOSTNAME:$HOSTNAME
  29. echo SHELL:$SHELL
  30. echo LANG:$LANG

  31. ################### 自定义变量 ###################
  32. days=10
  33. user="admin"
  34. echo "$user logged in $days days age"
  35. days=5
  36. user="root"
  37. echo "$user logged in $days days age"
  38. # Output:
  39. # admin logged in 10 days age
  40. # root logged in 5 days age

  41. ################### 从变量读取列表 ###################
  42. colors="Red Yellow Blue"
  43. colors=$colors" White Black"

  44. for color in $colors
  45. do
  46.         echo " $color"
  47. done
复制代码


+10

本帖被以下淘专辑推荐:

  • · Shell|主题: 28, 订阅: 0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-12-27 08:04 , Processed in 0.086626 second(s), 43 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表