网站开发项目总结报告,设计素材网站无版权,互联网营销设计,广告制作合同范本Shell变量系统预定义变量自定义变量基本语法定义变量撤销变量命名规则使用变量只读变量删除变量变量类型系统预定义变量
$HOME、$PWD、$SHELL、$SUSER等 实例
yysubuntu:~$ echo $HOME #查看系统变量的值
/home/yys
yysubuntu:~$ set #显示当前shell中所有变量自定义变量…
Shell变量系统预定义变量自定义变量基本语法定义变量撤销变量命名规则使用变量只读变量删除变量变量类型系统预定义变量
$HOME、$PWD、$SHELL、$SUSER等 实例
yysubuntu:~$ echo $HOME #查看系统变量的值
/home/yys
yysubuntu:~$ set #显示当前shell中所有变量自定义变量
基本语法
定义变量
[变量名][变量值]注意前后不能有空格
撤销变量 命名规则
命名只能使用英文字母数字和下划线首个字符不能以数字开头中间不能有空格可以使用下划线 _不能使用标点符号不能使用bash里的关键字可用help命令查看保留关键字。 定义变量时变量名不加美元符号$PHP语言中变量需要如
your_namerunoob.com变量名和等号之间不能有空格这可能和你熟悉的所有编程语言都不一样。
除了显式地直接赋值还可以用语句给变量赋值如
for file in ls /etc
或
for file in $(ls /etc)以上语句将 /etc 下目录的文件名循环出来。
使用变量
使用一个定义过的变量只要在变量名前面加美元符号即可如
实例
your_nameqinjx
echo $your_name
echo ${your_name}变量名外面的花括号是可选的加不加都行加花括号是为了帮助解释器识别变量的边界比如下面这种情况
实例
for skill in Ada Coffe Action Java; doecho I am good at ${skill}Script
done如果不给skill变量加花括号写成echo I am good at skillScript解释器就会把skillScript解释器就会把skillScript解释器就会把skillScript当成一个变量其值为空代码执行结果就不是我们期望的样子了。
推荐给所有变量加上花括号这是个好的编程习惯。
已定义的变量可以被重新定义如
实例
your_nametom
echo $your_name
your_namealibaba
echo $your_name这样写是合法的但注意第二次赋值的时候不能写yournamealibaba使用变量的时候才加美元符your_namealibaba使用变量的时候才加美元符yournamealibaba使用变量的时候才加美元符。
只读变量
使用 readonly 命令可以将变量定义为只读变量只读变量的值不能被改变。
下面的例子尝试更改只读变量结果报错
实例
#!/bin/bashmyUrlhttps://www.google.com
readonly myUrl
myUrlhttps://www.runoob.com运行脚本结果如下
/bin/sh: NAME: This variable is read only.删除变量
使用 unset 命令可以删除变量。语法
unset variable_name变量被删除后不能再次使用。unset 命令不能删除只读变量。
实例
实例
#!/bin/shmyUrlhttps://www.runoob.com
unset myUrl
echo $myUrl以上实例执行将没有任何输出。
变量类型
运行shell时会同时存在三种变量 局部变量 局部变量在脚本或命令中定义仅在当前shell实例中有效其他shell启动的程序不能访问局部变量。 环境变量 所有的程序包括shell启动的程序都能访问环境变量有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量有一部分是局部变量这些变量保证了shell的正常运行