Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn)
場景
- 系統(tǒng)中存在環(huán)境變量 USER=iceber
- 腳本中存在一個變量 env_name=USER
- 需要通過變量 env_name 獲取到環(huán)境變量 USER 的值
錯誤示例
$ # 環(huán)境中已存在環(huán)境變量 USER $ env_name=USER $ echo ${$env_name} ${$env_name}: bad substitution
很顯然,直接使用 $ 嵌套來獲取值是行不通的
正確示例
$ # 環(huán)境中已存在環(huán)境變量 USER $ env_name=USER $ eval echo '$'$env_name icebergu
eval 先將對參數(shù)進行變量的替換,然后再將參數(shù)作為命令執(zhí)行
eval echo '$'$env_naem
- 首先會將 $env_name 替換成 USER,這時會和前邊的'$'組成字符串$USER,現(xiàn)在的命令實際已經(jīng)變成了eval echo $USER
- 然后 eval 再執(zhí)行 echo $USER,這樣就完成了環(huán)境變量的獲取
根據(jù)上邊的解析會發(fā)現(xiàn),命令其實可以寫成 eval echo \$$env_name 也是可以的
同理,如果一個變量存的的其他變量的名字,使用 eval 也可以獲取到相應(yīng)變量的值
到此這篇關(guān)于Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Shell eval獲取環(huán)境變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell腳本實戰(zhàn)-while循環(huán)語句
這篇文章主要介紹了shell腳本實戰(zhàn)-while循環(huán)語句,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Linux Shell循環(huán)中實現(xiàn)展示進度百分比的實現(xiàn)方法
這篇文章主要介紹了Linux Shell循環(huán)中實現(xiàn)展示進度百分比的實現(xiàn)方法的相關(guān)資料,這里提供實現(xiàn)方法及實例,需要的朋友可以參考下2017-08-08Shell內(nèi)置命令教程之a(chǎn)lias和echo
我們?nèi)粘J褂胹hell輸入命令得到結(jié)果的方式是交互式的方式,而shell腳本使用的是非交互式方式,shell提供了alias功能來簡化我們的日常操作,下面這篇文章主要給大家介紹了關(guān)于Shell內(nèi)置命令教程之a(chǎn)lias和echo的相關(guān)資料,需要的朋友可以參考下2022-03-03linux shell中 if else以及大于、小于、等于邏輯表達式介紹
在linux shell編程中,大多數(shù)情況下,可以使用測試命令來對條件進行測試,這里簡單的介紹下,方便需要的朋友2013-02-02很實用的Linux 系統(tǒng)運維常用命令及常識(超實用)
作為Linux運維,需要了解Linux操作系統(tǒng)的基本使用和管理知識,下面腳本之家小編給大家介紹下Linux運維需要掌握的命令,想成為Linux運維的朋友可以來學(xué)習(xí)一下2016-10-10Linux oracle數(shù)據(jù)庫自動備份自動壓縮腳本代碼
這篇文章主要介紹了Linux oracle數(shù)據(jù)庫備份完成后可以自動壓縮腳本代碼,大家參考使用2013-12-12Linux命令學(xué)習(xí)之用戶切換su,sudo命令詳解
在操作過程中需要使用特定的用戶進行特定的操作,多數(shù)情況下是因為權(quán)限,比如要修改一個文件,只有root用戶有權(quán)限修改,那么就要切換到root用戶下進行操作,本文給大家講解Linux命令學(xué)習(xí)之用戶切換su,sudo命令,感興趣的朋友跟隨小編一起看看吧2023-02-02