Shell脚本定义变量和环境变量的引用

一、定义变量

定义变量时,变量名不加美元符号($),如:

variableName="value"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

?首个字符必须为字母(a-z,A-Z)。

?中间不能有空格,可以使用下划线(_)。

?不能使用标点符号。

?不能使用bash里的关键字(可用help命令查看保留关键字)。

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

for skill in Ada Coffe Action Java

do

echo "I am good at ${skill}Script"

done

如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号,这是个好的编程习惯。

重新定义变量

已定义的变量,可以被重新定义,如:

your_name="tom"

echo $your_name

your_name="alibaba"

echo $your_name

这样写是合法的,但注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符($)。

二、引用环境变量和变量

1.下面是在一个文件中引用变量方法

#!/bin/sh

log="4"

if [ $log = "4" ];

then

echo   "$log  is succed"

else

echo "$log is  failure"

fi

2.从其他脚本程序引用变量

[[email protected]
tmp]# cat 1.sh

log=`basename $0`.log

echo $log in $0

[[email protected] tmp]# cat 2.sh

source 1.sh

echo $log in $0

[[email protected] tmp]# ./1.sh

1.sh.log in ./1.sh

[[email protected] tmp]# ./2.sh

2.sh.log in ./2.sh

2.sh.log in ./2.sh

3.直接引用环境变量,这样方便我们修改和设置

我把环境变量放在开发板的/etc/profile文件里面

export log=4

在其他脚本中直接引用,前面加上环境变量路径  source /etc/profile

可以直接在命令行输入export log=4进行修改

时间: 2024-10-10 23:06:02

Shell脚本定义变量和环境变量的引用的相关文章

shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇

在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas

玩转变量、环境变量以及数学运算(shell)

变量和环境变量    var=value  给变量赋值,输出语句:$ echo $var或者是$ echo ${var},记住中间有个空格 例如:name="coffee" age="20" $echo "我的名字是:${name},年龄是:${age}" 在输出语句echo中可以在双引号中使用变量,但是如果是单引号那么变量不会扩展得到定义的值. 获取字符串的长度:${#var} 1 //例如: 2 name="yy" $ec

Shell脚本之let,echo变量

http://blog.chinaunix.net/uid-26827001-id-3154024.html 首先看到好多以这样开头的    #!/bin/bash   这个是告诉系统 解释此脚本文件的Shell程序# 这个是注释行,当行有效脚本程序一般用 xx.sh 文件表示,这样一样就可以看出文件的属性,当然也可以不这样一个脚本程序写完后,如果要执行它,则必须先赋+x  执行权限给它 例如:chmod +x xx.sh,然后用命令 ./filename  执行 以下是一些知识点:1. ech

Linux学习(二十二)Shell基础(二)变量、环境变量配置文件

一.变量 变量是一个容器,里面能放不同的值. 要点知识: PATH,HOME,PWD,LOGNAME这些都是变量. 例子: [[email protected] ~]# echo a+b a+b [[email protected] ~]# echo $a+$b 3+4 [[email protected] ~]# echo $a3$bc [[email protected] ~]# echo $a3$b 4 [[email protected] ~]# echo $a"3"$b 33

8.6-8.9 管道符和作业控制、shell变量,环境变量

8.6 管道符和作业控制 管道符"|" 管道符的作用在于将符号前面的结果丢给符号后面的命令.管道符后面并不是所有的命令都可以,一般针对文档操作的命令比较常用,eg:cat.less.head.tail.grep.cut.sort.wc.uniq.tee.tr.split.sed.awk等等. 作业控制 Ctrl+z 暂停一个正在执行的任务 jobs 查看在后台运行的任务 bg[id] =background把任务调到后台运行 fg[id] =foreground把任务调到前台运行 &q

二十四、管道符和作业控制、shell变量、环境变量配置文件

二十四.管道符和作业控制.shell变量.环境变量配置文件一.管道符和作业控制管道符:| 表示把前面文件输出的内容传递给后面的命令.|grep:过滤,指定关键词的命令.|grep 'aaa'.作业控制Ctrl+z:暂停一个任务.等于把当前任务放在了后台,使用fg命令再调回任务里.fg:前台,foreground.bg:后台,将任务调到后台去运行.示例: vim /etc/passwd [1]+ 已停止 vim /etc/passwd可以停止多个任务,被暂停的任务会有编号.想调回哪个就fg 1或者

linux基本变量学习:本地变量、环境变量、特殊变量、位置变量

shell: 弱类型编程语言 强:变量在使用前,必须事先声明,甚至还需要初始化: 弱:变量用时声明,甚至不区分类型: 变量赋值:VAR_NAME=VALUE bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量 本地变量: set VARNAME=VALUE: 作用域为整个bash进程: 局部变量: local VARNAME=VALUE:作用域为当前代码段: 环境变量:作用域为当前shell进程及其子进程: export VARNAME=VALUE VARNAME=VALUE

本地变量和环境变量

nux的变量类型有两种.本地变量和环境变量(全局变量) 你可以使用的linux命令有,export和declare用法:export 变量名=值 例如:export total=50declare -x 变量名=值 例如:declare -x total=19 使用set命令可以查看你系统当前的所有的变量使用env命令可以查看你系统当前的所有环境变量

AutoCAD 中的系统变量与环境变量

AutoCAD 中的系统变量与环境变量 (来自官方帮助文件) About System and Environment Variables (AutoLISP) (1)系统变量 AutoLISP applications can inspect andchange the value of AutoCAD system variables with the getvarandsetvar functions. ;;系统变量主要是涉及 AutoCAD 的. These functions use