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

Chinaunix

標(biāo)題: 請(qǐng)教一個(gè)eval語(yǔ)句中取值的問(wèn)題 [打印本頁(yè)]

作者: sagecrow    時(shí)間: 2016-04-16 20:39
標(biāo)題: 請(qǐng)教一個(gè)eval語(yǔ)句中取值的問(wèn)題
i=test
testip=1.2.3.4

我要通過(guò)i變量把ip的最后一位取出來(lái)
eval echo \$${i}ip | cut -d . -f 4

問(wèn)題來(lái)了,我無(wú)法把這個(gè)最后一位賦值出來(lái)
比如:
last=` eval echo \$${i}ip | cut -d . -f 4 `
或者
eval last=` eval echo \$${i}ip | cut -d . -f 4 `

取出來(lái)的值都不對(duì)……請(qǐng)問(wèn)我應(yīng)該怎么做呢?
作者: cao627    時(shí)間: 2016-04-16 21:54
  1. last=$(eval echo \${i}ip | cut -d . -f 4)
復(fù)制代碼

作者: 99超人    時(shí)間: 2016-04-17 07:09
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: sagecrow    時(shí)間: 2016-04-17 18:40
回復(fù) 3# 99超人

多謝!


   
作者: sagecrow    時(shí)間: 2016-04-17 18:42
回復(fù) 2# cao627

多謝!
能否問(wèn)一句為什么eval last=` echo \$${i}ip | cut -d . -f 4 ` 這樣不行呢?
如果不使用()分支還有別的辦法能做到么?

   
作者: _R__    時(shí)間: 2016-04-18 09:04
[root@localhost ~]# i=test
[root@localhost ~]# testip=1.2.3.4
[root@localhost ~]# last=${testip##*.}
[root@localhost ~]# echo $last
4
作者: cao627    時(shí)間: 2016-04-18 16:44
本帖最后由 cao627 于 2016-04-18 16:51 編輯

@sagecrow
似乎是在``中反斜杠\被預(yù)先轉(zhuǎn)意了。
即 last=` eval  echo \$${i}ip | cut -d . -f 4 `  被等同為了  last=` eval  echo $${i}ip | cut -d . -f 4 `   而$$表示為當(dāng)前shell的進(jìn)程號(hào)。



last=`eval echo '$'${i}ip | cut -d . -f 4`
作者: sagecrow    時(shí)間: 2016-04-21 16:50
回復(fù) 7# cao627

i=test
testip=1.2.3.4
val last=`  echo '$'${i}ip | cut -d . -f 4 `
echo $last
1.2.3.4

后面cut不起作用了,何解?
   
作者: zy86416779    時(shí)間: 2016-04-21 19:15
  1. [root@study tmp]# echo $i
  2. test
  3. [root@study tmp]# echo $testip
  4. 1.2.3.4
  5. [root@study tmp]# temp=$(eval echo \${i}ip)
  6. [root@study tmp]# temp_1=${temp##*.}
  7. [root@study tmp]# echo $temp_1
  8. 4
復(fù)制代碼

作者: zy86416779    時(shí)間: 2016-04-21 19:18
本帖最后由 zy86416779 于 2016-04-21 19:21 編輯

回復(fù) 1# sagecrow
試試這樣
  1. [root@study tmp]# a=$(eval echo \${i}ip | cut -d . -f 4)
  2. [root@study tmp]# echo $a
  3. 4
復(fù)制代碼

作者: jason680    時(shí)間: 2016-04-22 10:21
回復(fù) 1# sagecrow


Didn't use eval

$ n=test

$ export testip=1.2.3.4

$ last=`awk -vn="$n" 'BEGIN{split(ENVIRON[n"ip"],a,".");print a[4]}'`

$ echo $last
4

作者: cao627    時(shí)間: 2016-04-22 18:31
本帖最后由 cao627 于 2016-04-22 18:36 編輯

@sagecrow

$ i=test
$ testip=1.2.3.4
$ echo '$'${i}ip
$testip                                           #echo的顯示
$ echo '$'${i}ip | cut -d . -f 4    #echo的顯示$testip 中沒(méi)有. cut以.分隔字段不起作用
$testip                                         #所以切割的結(jié)果還是$testip

$ eval last=$testip                    #所以  eval last=`echo '$'${i}ip | cut -d . -f 4 `  相當(dāng)于    eval last=$testip
$ echo $last
1.2.3.4






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