变量的疑问

sh/bash/dash/ksh/zsh等Shell脚本
回复
lanceu
帖子: 28
注册时间: 2009-02-17 21:13

变量的疑问

#1

帖子 lanceu » 2009-05-30 22:16

我有这么一段代码,最后一句变量$mpdir 的值总是转换成字符串“mp2” 。要怎么编写,才能转换成 $mp2 的值 (/home/lance/蔡依林-布拉格广场.mp3)呢?
太疑惑拉! 我试过用 $(mpdir) 和 ${mpdir}都不行。

代码: 全选

mp1="/home/lance/M2M-The day you went away.mp3"
mp2="/home/lance/蔡依林-布拉格广场.mp3"

#假设用户选择的是第2首歌曲
which=2
mpdir=mp$which

#播放第2首歌曲
audacious $mpdir
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 变量的疑问

#2

帖子 c\nc » 2009-05-30 22:55

eval mpdir=\$mp$which
lanceu
帖子: 28
注册时间: 2009-02-17 21:13

Re: 变量的疑问

#3

帖子 lanceu » 2009-05-30 23:14

谢谢 c\nc 拉。成功拉。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 变量的疑问

#4

帖子 eexpress » 2009-05-31 9:20

☎ tt="xx"; vv="$tt"; echo $vv
xx

or 使用数组。
● 鸣学
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 变量的疑问

#5

帖子 aerofox » 2009-05-31 21:27

也可以:

代码: 全选

audacious ${!mpdir}
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 变量的疑问

#6

帖子 tusooa » 2009-08-19 19:41

lanceu 写了:我有这么一段代码,最后一句变量$mpdir 的值总是转换成字符串“mp2” 。要怎么编写,才能转换成 $mp2 的值 (/home/lance/蔡依林-布拉格广场.mp3)呢?
太疑惑拉! 我试过用 $(mpdir) 和 ${mpdir}都不行。

代码: 全选

mp1="/home/lance/M2M-The day you went away.mp3"
mp2="/home/lance/蔡依林-布拉格广场.mp3"

#假设用户选择的是第2首歌曲
which=2
mpdir=mp$which

#播放第2首歌曲
audacious $mpdir
${${mp${which}}}

代码: 全选

] ls -ld //
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: 变量的疑问

#7

帖子 O_O_BOT » 2009-08-19 20:01

tusooa 写了:${${mp${which}}}
这是不对了 怎么不尝试下才回答呢?

${!mapdir} 就可以了
或者用eval
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
cocoready
帖子: 15
注册时间: 2009-08-13 12:11

Re: 变量的疑问

#8

帖子 cocoready » 2009-08-19 22:08

aerofox 写了:也可以:

代码: 全选

audacious ${!mpdir}
这个方法很简单,学习了
回复