Linux变量的定义

变量的定义
1,用户自定义变量
变量名=变量值
应用一个变量时 要加上$符号 例 echo $a
如果要将一个是变量和一个不是变量的一起用时,,又要将他们一起输出,可以使用{}将是变量的括起来 例 echo ${day}morning 就是一起输出
echo $daymorning 如果是这样,计算机就不知道谁才是变量
echo d a y m o r n i n g 这 样 计 算 机 又 知 道 了 强 引 用 和 弱 引 用 强 ‘ ’ 单 引 号 , 将 单 引 号 里 的 数 全 部 赋 值 , 不 做 改 变 弱 “ ” 双 引 号 将 双 引 号 里 又 day morning 这样计算机又知道了 强引用和弱引用 强‘’单引号,将单引号里的数全部赋值,不做改变 弱“”双引号 将双引号里又 daymorning或其他变量赋值的按 符 号 赋 值 反 撇 号 ‘ ‘ 括 起 来 的 内 容 会 被 当 做 一 个 命 令 来 执 行 和 符号赋值 反撇号 ` ` 括起来的内容会被当做一个命令来执行 和 ( ) 的作用一样,,推荐用 ( ) 方 便 区 分 r e a d 可 以 给 多 个 变 量 赋 值 r e a d a c b − − − − − − − − − − − 同 时 给 a c b 赋 值 r e a d − p − − − 可 以 与 用 户 交 互 例 r e a d − p " p l e a s e i n p u t a n u m b e r : " n u m 将 数 赋 给 n u m 支 持 的 算 术 运 算 符 只 有 + − ∗ / 将 一 切 看 作 是 字 符 的 变 量 , 没 有 数 值 型 的 变 量 将 一 切 开 成 是 文 本 型 的 数 据 如 果 直 接 输 入 2 + 3 是 肯 定 不 行 的 需 要 用 到 l e t 命 令 , 先 赋 值 , l e t n u m = () 方便区分 read 可以给多个变量赋值 read a c b-----------同时给a c b 赋值 read -p ---可以与用户交互 例 read -p "please input a number :" num 将数赋给num 支持的算术运算符 只有 + - * / % ** 将一切看作是字符的变量,没有数值型的变量 将一切开成是文本型的数据 如果直接 输入2+3 是肯定不行的 需要用到 let 命令 , 先赋值,let num= ()便readreadacbacbreadpreadp"pleaseinputanumber:"numnum+/2+3letletnum=a+$b echo $num --才可以将数据算出
也可以用 $[ ] 将[]里的表达式当作算术计算 $[ a + a+ a+b ] 一定不能在里边直接写数字
[ ] 和 [ ]和 [](( ))完全等价
加粗样式
2,,环境变量 系统定义好的,执行环境变量要加上echo 加变量
echo $PATH—存放可执行文件的路径
echo $HISTSIZE -----当前用户的历史上限命令条数,,可以更改命令上限的条数
HOME PATH USER UID SHELL HISTSIZE PWD-----这些环境变量和一般的差不多
给PATH 赋环境变量PATH=“ ” 就可以直接将PATH的值给变动
echo L A N G 显 示 当 前 系 统 语 言 L A N G = " " 可 以 改 变 当 前 的 系 统 语 言 , 只 要 正 确 写 出 语 言 怎 么 写 的 自 定 义 变 量 和 系 统 定 义 的 环 境 变 量 ( 环 境 变 量 通 常 使 用 大 写 显 示 ) 自 定 义 变 量 , 默 认 情 况 下 只 能 在 当 前 的 s h e l l 环 境 中 使 用 , 因 此 称 为 局 部 变 量 , 局 部 变 量 是 在 新 开 启 的 s h e l l 是 无 效 的 例 执 行 b a s h 命 令 就 会 开 启 一 个 子 b a s h 在 上 一 个 b a s h 例 定 义 的 环 境 变 量 在 子 b a s h 里 也 是 起 不 到 作 用 的 环 境 变 量 就 是 到 哪 里 都 可 以 使 用 但 是 自 定 义 环 境 变 量 只 能 在 当 前 的 b a s h 和 子 b a s h 自 定 义 环 境 变 量 e x p o r t 环 境 变 量 名 = “ ” 用 e x p o r t 来 定 义 环 境 变 量 b a s h 的 配 置 文 件 b a s h 分 俩 类 p r o f i l e 类 配 置 文 件 , 这 类 文 件 旨 在 用 户 登 录 是 执 行 一 次 全 局 的 对 全 部 用 户 都 有 效 / e t c / p r o f i l e / e t c / p r o f i l e . d / 在 这 个 目 录 下 的 所 有 以 . s h 结 尾 的 , 或 者 自 己 创 建 一 个 , 或 修 改 一 个 , 所 有 的 用 户 登 录 s h e l l 时 都 会 自 动 执 行 这 个 文 件 局 部 的 只 对 指 定 的 用 户 有 效 在 用 户 的 家 目 录 下 , 每 个 都 会 又 一 个 . b a s h p r o f i l e 的 文 件 ( . 是 隐 藏 文 件 ) b a s h r c 类 配 置 文 件 , 这 类 文 件 不 仅 在 登 录 是 会 执 行 , 而 且 每 当 用 户 打 开 新 的 s h e l l 或 者 创 建 新 的 s h e l l 也 会 被 执 行 , 也 就 是 说 b a s h r c 会 被 反 复 执 行 多 次 全 局 的 / e t c / b a s h r c 局 部 的 . / b a s h r c 要 想 永 久 使 用 环 境 变 量 就 要 修 改 配 置 文 件 在 p r o f i l e 中 的 配 置 文 件 最 后 加 e x p o r t 来 定 义 环 境 变 量 的 命 令 , , , 或 是 在 / e t c / p r o f i l e . d / 下 加 一 个 以 . s h 结 尾 的 文 件 里 边 也 用 e x p o r t 来 定 义 环 境 变 量 修 改 完 配 置 文 件 不 能 立 即 生 效 , 可 以 执 行 s o u r c e 或 . 加 配 置 文 件 就 可 以 生 效 , 就 跟 配 置 服 务 要 重 启 服 务 一 样 可 以 在 配 置 文 件 里 加 文 件 目 录 , 路 径 等 等 位 置 变 量 就 是 在 脚 本 里 定 义 一 个 数 , 当 执 行 这 个 脚 本 时 , 可 以 在 外 边 进 行 输 出 , 赋 值 , 以 及 其 他 操 作 位 置 变 量 与 s h e l l 脚 本 程 序 执 行 时 所 用 的 命 令 参 数 相 对 应 , 命 令 行 中 的 参 数 受 照 从 左 到 右 的 顺 序 依 次 给 位 置 变 量 赋 值 , , 位 置 变 量 的 名 称 是 LANG 显示当前系统语言 LANG=" " 可以改变当前的系统语言,只要正确写出语言怎么写的 自定义变量 和 系统定义的环境变量(环境变量通常使用大写显示) 自定义变量 ,默认情况下只能在当前的shell环境中使用,因此称为局部变量,局部变量是在新开启的shell是无效的 例 执行bash命令 就会开启一个子bash 在上一个bash例定义的环境变量在子bash里也是起不到作用的 环境变量就是到哪里都可以使用 但是自定义环境变量只能在当前的bash和子bash 自定义环境变量 export 环境变量名=“ ” 用export来定义环境变量 bash的配置文件 bash分俩类 profile类配置文件,这类文件旨在用户登录是执行一次 全局的对全部用户都有效 /etc/profile /etc/profile.d/在这个目录下的所有以 .sh结尾的,或者自己创建一个,或修改一个,所有的用户登录shell 时都会自动执行这个文件 局部的只对指定的用户有效 在用户的家目录下,每个都会又一个 .bash_profile的文件( . 是隐藏文件) bashrc 类配置文件,这类文件不仅在登录是会执行,而且每当用户打开新的shell或者创 建新的shell也会被执行,也就是说bashrc 会被反复执行多次 全局的 /etc/bashrc 局部的 ./bashrc 要想永久使用环境变量 就要修改配置文件 在profile中的配置文件最后加 export 来定义环境变量 的命令 ,,,或是在/etc/profile.d/下加一个以 .sh 结尾的文件里边也用export来定义环境变量 修改完配置文件不能立即生效,可以执行 source 或 . 加配置文件就可以生效,就跟配置服务要重启服务一样 可以在配置文件里加文件目录,路径等等 位置变量 就是在脚本里定义一个数,当执行这个脚本时,可以在外边进行输出,赋值,以及其他操作 位置变量与shell脚本程序执行时所用的命令参数相对应,命令行中的参数受照从左到右的顺序依次给位置变量赋值,,位置变量的名称是 LANGLANG=""使shell使shellbashbashbashbash使bashbashexport=exportbashbashprofile/etc/profile/etc/profile.d/.shshell.bashprofile.bashrcshellshellbashrc/etc/bashrc./bashrc使profileexport/etc/profile.d/.shexportsource.shelln 其中n 是参数的位置序号,从1开始,最多是9 例如$1
$2 3 分 别 代 表 了 命 令 的 1 , 2 , 3 个 参 数 , 脚 本 里 的 怎 么 做 , 就 影 响 了 后 面 输 出 的 参 数 怎 么 做 , 脚 本 里 有 多 少 个 参 数 , 最 好 传 多 少 个 参 数 , 因 为 如 果 你 传 多 了 , 也 没 有 位 置 来 存 放 , 也 不 能 继 续 算 ( 而 且 上 限 是 9 ) 如 果 没 有 传 参 数 的 , 那 就 是 默 认 什 么 都 没 有 预 定 义 变 量 预 定 义 变 量 是 s h e l l 中 预 先 定 义 好 的 一 些 特 殊 变 量 , 用 户 只 能 使 用 预 定 义 变 量 , 而 自 己 不 能 自 己 创 建 新 建 的 预 定 义 变 量 , 也 不 能 直 接 作 为 预 定 义 变 量 赋 值 所 有 的 预 定 义 变 量 都 是 由 3 分别代表了命令的1,2,3个参数,脚本里的怎么做,就影响了后面输出的参数怎么做,脚本里有多少个参数,最好传多少个参数,因为如果你传多了,也没有位置来存放,也不能继续算(而且上限是9)如果没有传参数的,那就是默认什么都没有 预定义变量 预定义变量是shell中预先定义好的一些特殊变量,用户只能使用预定义变量,而自己不能自己创建新建的预定义变量,也不能直接作为预定义变量赋值 所有的预定义变量都是由 31239shell使和另一个符号组成
? 用 于 检 查 上 一 条 命 令 执 行 状 态 , 如 果 上 一 条 正 确 执 行 了 , 那 么 ?用于检查上一条命令执行状态,如果上一条正确执行了,那么 ??的值是为0.非0为错误(1到255)
$#表示命令行中位置参数的数量
$0表示当前脚本的名称

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

盘丝洞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值