亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 不用eval可以嗎 [打印本頁(yè)]

作者: sewidking    時(shí)間: 2014-02-11 08:32
標(biāo)題: 不用eval可以嗎
本帖最后由 sewidking 于 2014-02-11 08:33 編輯

各位大神,我有一個(gè)小問題
abc=12345
a=abc

我想通過(guò)a給abc賦值
為啥執(zhí)行 $a=67890 的時(shí)候shell提示command not found
嗯,我知道用eval可以解決,但我想知道為什么會(huì)提示command not found呢

還有,可不可以不用eval解決這個(gè)問題呢?

先謝謝各位了,小弟很菜,不要笑我.....

忘了說(shuō),我用的是bash
GNU bash, version 4.1.2(1)-release
作者: laliheyi    時(shí)間: 2014-02-11 08:39
本帖最后由 laliheyi 于 2014-02-11 08:41 編輯

回復(fù) 1# sewidking
為啥執(zhí)行 $a=67890 的時(shí)候shell提示command not found
因?yàn)橐獙⒆兞繑U(kuò)展后的內(nèi)容當(dāng)作命令要執(zhí)行,而此命令不存在
  1. eval $a=123
  2. let $a=124
復(fù)制代碼

作者: sewidking    時(shí)間: 2014-02-11 08:47
回復(fù) 2# laliheyi


謝謝,用let的話,把數(shù)字賦值給abc是可以的,但let $a=pppppp就不行了,請(qǐng)教一下,怎樣才能賦值一個(gè)字符串呢
作者: laliheyi    時(shí)間: 2014-02-11 08:50
回復(fù) 3# sewidking
  1. declare $a=ppp
復(fù)制代碼

作者: sewidking    時(shí)間: 2014-02-11 08:54
回復(fù) 4# laliheyi


解決問題了,多謝
小弟新人,初來(lái)乍到,還請(qǐng)大神多多關(guān)照啊
作者: newoz    時(shí)間: 2014-02-11 20:06
本帖最后由 newoz 于 2014-02-11 20:09 編輯

可以不用eval
  1. abc=12345
  2. a=abc
  3. echo ${!a}
  4. 12345
復(fù)制代碼
${!a}的用法的英文是:indirect expansion。ㄖ弊g:間接擴(kuò)張)
作者: elu_ligao    時(shí)間: 2014-02-11 21:52
  1. [redhat@localhost 0209]$ abc=12345
  2. [redhat@localhost 0209]$ a=abc
  3. [redhat@localhost 0209]$ echo $a
  4. abc
  5. [redhat@localhost 0209]$ echo $abc
  6. 12345
  7. [redhat@localhost 0209]$ declare $a=ppp
  8. [redhat@localhost 0209]$ echo $a
  9. abc
  10. [redhat@localhost 0209]$ echo $abc
  11. ppp
  12. [redhat@localhost 0209]$
復(fù)制代碼
學(xué)習(xí)了
作者: 這個(gè)冬天不冷    時(shí)間: 2014-02-11 23:52
請(qǐng)記住eval的作用:eval就是 讓它后面的命令啊 參數(shù) 先讓bash給他解釋一邊,該替換的替換,然后再執(zhí)行
作者: Shell_HAT    時(shí)間: 2014-02-12 08:36
回復(fù) 6# newoz


    這個(gè)跟樓主的需求不一樣吧
作者: sewidking    時(shí)間: 2014-02-12 09:57
謝謝大家的回復(fù),漲了老多姿勢(shì)了,老開心了




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2