簡體   English   中英

在Bash腳本中傳遞變量名稱和值

[英]Pass Variable Name and Value in Bash Script

我只想驗證我編寫的腳本是否正在執行我認為正在執行的操作,並且是否正確執行了該操作。

我想編寫一個腳本,該腳本需要一個環境變量和一個字符串值,然后將該變量設置為給定值。 所以我可以做一些類似setvar BOOST_HOME /home/me/boost/boost_1.52.0的腳本,腳本將export BOOST_HOME=/home/me/boost/boost_1.52.0

就像是:

#!/bin/bash
# Usage: setvar VAR VAR_VALUE
function setvar()
{
    VAR=${1}
    VAR_VALUE=${2}
    if [ -d $2 ]
    then
        eval export $VAR=$2
    fi
}

至少從回聲echo測試來看,這似乎可行,但我對shell腳本仍然不太滿意,並且希望有人可以驗證我在做什么,或者指出我在做錯/不太正確。

您不需要評估。

setvar() {
  if [[ -d $2 ]]; then
    export "$1=$2"
  fi
}

使用[[而不是[可以避免引用$2 ,因為bash(和其他shell)擴展名[[不會對內部參數擴展進行單詞分割。 如果我堅持使用老式的[ -d "$2" ] ,則必須引用$2以防其值包含空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM