Shell - 变量

作者: spfanlost | 来源:发表于2017-07-15 17:36 被阅读3次

1.Shell定义变量

Shell定义一个变量不用声明,但是要注意的几点 :1. 首个字符必为字母。 2. 中间不能有空格。3. 不能用标点。4. 不能用shell关键字(在bush中输入help看关键字)。

例如:

x=8
hello="Hello World!"

可以用一个变量给另一个变量赋值:

x=8
y=$x
z=$x+5

2. 变量访问 $

访问其实上边已经用到了,就是在变量前加个$。例如:

hello="Hello World!"
echo $hello
skill="Shell"
echo "I'm good at ${skill}Sript!"
  • 通常用函数echo来显示某个变量
  • 变量加{}是可选的,有的场合为避免与其他字符混淆,帮助编译器识别变量的边界。上句中如果没有{}则编译器会将¥skillScript当成一个变量

3.只读变量

顾名思义,看个例子就明白了:

hello="Hello World!"
readonly hello #声明成只读变量

4.删除变量 unset

就是unset指令,删除后不能再次使用,unset不能删除只读变量。

#!/bin/bash
hello="Hello World!"
unset hello
echo hello #这里没有任何输出

5.添加环境变量 export

用export可让变量当临时的环境变量。

export 变量名=变量

该变量只在当前的Shell或子Sell中有效,一旦关闭Shell变量就失效了。如果需要设置永久的环境变量,则需要编辑配置文件/etc/profile

内部变量

变量 说明
$0 当前脚本名字
$n 传递给脚本或函数的参数
$# 传递给脚本或函数的参数个数
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数 被""包含时,与$*稍有不同
$? 上个命令的退出状态或函数的返回值
$$ 当Shell进程ID 对于Shell脚本就是这些脚本所在进程ID

常见内部变量

变量 说明
$0 当前脚本名字
$n 传递给脚本或函数的参数
$# 传递给脚本或函数的参数个数
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数 被""包含时,与$*稍有不同
$? 上个命令的退出状态或函数的返回值
$$ 当Shell进程ID 对于Shell脚本就是这些脚本所在进程ID

例如查看当前Shell进程ID指令:

echo $$ #显示 55754

相关文章

  • shell基础在工作中的应用

    shell编程基础:1. shell变量:环境变量、特殊变量、用户自定义变量2. shell输入输出3 shell...

  • Linux Shell:基础知识和Shell变量

    摘要:Linux,Shell 整理Shell内容要点: Shell基础知识 Shell变量的类型 Shell变量赋...

  • Shell常用命令(md格式方便阅读和复制粘贴)

    Shell Shell中的变量 系统变量 自定义变量 自定义变量规则 Shell特殊变量 运算符 条件判断 基本语...

  • shell第11章shell脚本

    什么是shell? Bash shell: 什么是shell脚本? 变量的介绍: 普通变量介绍: 环境变量介绍: ...

  • shell变量详解

    本文转载自Hello,Barry的shell变量详解1 shell变量基础shell变量是一种很“弱”的变量,默认...

  • linux shell中常见的变量含义解释

    linux shell中常见变量含义解释:变量说明:$$Shell本身的PID(ProcessID)$!Shell...

  • Shell特殊变量

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 特殊变量列表 变量 含...

  • Shell变量

    Shell 变量 变量的分类 本地变量 全局变量 shell 内置变量 本地变量 本地变量就是:在当前系统的某个环...

  • bash环境变量

    环境变量是全局变量 自定义变量是局部变量 bash:可以进入当前shell的子shell(当前shell指的是当前...

  • shell

    shell变量 变量类型:局部变量局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程...

网友评论

    本文标题:Shell - 变量

    本文链接:https://www.haomeiwen.com/subject/cgqzhxtx.html