第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按名稱間接查找shell變量

按名稱間接查找shell變量

開心每一天1111 2019-10-12 09:42:41
假設我在另一個變量中存儲了一個變量名:myvar=123varname=myvar現(xiàn)在,我想僅通過使用$ varname變量獲得123。有直接的方法嗎?我發(fā)現(xiàn)沒有內(nèi)置的bash可以按名稱查找,因此提出了以下建議:function var { v="\$$1"; eval "echo "$v; }所以var $varname  # gives 123最終看起來還不錯,但是我想知道我是否錯過了更明顯的事情。提前致謝!
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

在bash的手冊頁中:


${!varname}

如果參數(shù)的第一個字符是感嘆號,則將引入變量間接尋址級別。Bash使用由其余參數(shù)形成的變量的值作為變量的名稱;然后擴展此變量,并在其余替換中使用該值,而不是參數(shù)本身的值。這稱為間接擴展。


查看完整回答
反對 回復 2019-10-12
?
忽然笑

TA貢獻1806條經(jīng)驗 獲得超5個贊

沒有直接的符合Posix的語法,只有一個bashism。我通常這樣做:


eval t="\$$varname"

這將在任何Posix shell上都可以使用,包括那些bash登錄shell以及/bin/sh更小,更快的東西(例如)的系統(tǒng)ash。我喜歡bash并將其用于我的登錄shell,但我避免在命令文件中使用bashisms。


注意:編寫特定于bash的腳本的一個問題是,即使您可以指望安裝的bash,它也可能在路徑上的任何位置。在這種情況下,最好使用完全通用的/usr/bin/env shebang樣式,但是請注意,這仍然不是100%可移植的,并且存在安全問題。


查看完整回答
反對 回復 2019-10-12
  • 3 回答
  • 0 關注
  • 563 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號