shell 变量中包含变量的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 变量中包含变量的问题相关的知识,希望对你有一定的参考价值。
例子:
set ymd = 20131021
set ymd1 = 20131022
set ymd2 = 20131023
set ymd3 = 20131024
set i = 1
while($i<=3)
echo $ymd$i ★这里的语句改如何写??
end
我想在循环中打出ymd1,ymd2,ymd3的值改如何写程序?
Linux Shell中的变量可以被指定为任意的数据类型,比如文本字符串或者数值。你也可以通过修改Shell中的变量来改变Shell的样式。
Shell支持三种定义变量的方式:
variable=value
variable='value'
variable="value"
variable是变量名,value是赋给变量的值。如果value不包含任何空白符(例如空格、Tab缩进等),那么可以不使用引号;如果value包含了空白符,那么就必须使用引号包围起来。注意,赋值号=的周围不能有空格。
Shell变量的命名规范和大部分编程语言一样:变量名由数字、字母、下划线组成;必须以字母或者下划线开头;不能使用Shell里的关键字(通过help命令可以查看保留关键字)。
Linux中Shell变量分为系统变量和用户自定义变量,系统变量包括$HOME、$PWD、$SHELL、$USER、echo $SHELL以及显示当前Shell中所有变量set。
Shell自定义变量包括1)定义变量:变量=值;2)撤销变量:unset变量;3)声明静态变量:readonly变量,注意不能unset;4)使用export把变量提升为全局环境变量,如/etc/profile中的TOMCAT_HOME变量,且在另外的/opt/tmp/shell/myShell.sh脚本中使用该环境变量。
Shell设置环境变量
基本语法:
1)export:变量名=变量值(功能描述:将shell变量输出为环境变量)
2)source:配置文件(功能描述:让修改后的配置文件立即生效)
3)echo:$变量名(功能描述:查询环境变量的值)
单行注释:#
多行注释::<<!需要注释的内容!
Shell脚本很适合处理纯文本类型的数据,而Linux中几乎所有的配置文件、日志文件(如NFS、Rsync、Httpd、Nginx、MySQL等),以及绝大多数的启动文件都是纯文本类型的文件。Shell是运维人员必须要掌握的技能,此外还需要掌握Linux、信息安全、Docker容器等。 参考技术A
说实话你这个写法好诡异。不过用eval应该可以解决
eval echo "$"ymd$i""你试试
参考技术B set i = 1while($i<=3)
echo $ymd$i ★这里的语句改如何写??
i=$(($i+1))
end
把你那行改成这个看看可行了
while [ $i -le 3 ]
do
echo $ymd$i
let i++
done
答案给了, 兄弟, 请给我分吧!本回答被提问者采纳
以上是关于shell 变量中包含变量的问题的主要内容,如果未能解决你的问题,请参考以下文章
shell之sed命令删除变量中带有“日期时间等内容”的方法