簡體   English   中英

bash 腳本 - 僅當不為空時才回顯

[英]bash scripting - echo only if not empty

是否有選項或我可以使用的東西來封裝 echo 語句,以便它們在該行為空時不打印?

我在想這樣的事情:

myecho(str){
  if [[ -z str ]]; then
    echo str
  fi
}

但我找不到如何傳遞參數。

函數的參數像參數一樣傳遞給腳本。 $1$n

myecho(){
    if [ -n "$1" ] ; then
        echo "$@"
    fi
}

myecho ""
myecho "foo"

在測試中使用-n可以驗證字符串不為空。 了解有關 bash 函數的更多信息: http : //tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-8.html

那這個呢?

[ -n "${STRING}" ] && echo ${STRING}

或者補充版本:

[ -z "${STRING}" ] || echo ${STRING}

或者你可以做一些“回聲魔法”:

echo -en "Some prependig text before the empty string: \""
echo -n "${STRING}"
echo -e "\" and some postfix text..."
function echo2() {
   if [ -n "$1" ]
   then
      echo "$1"
   fi
}

man bash (Shell Parameter Expansion),如果str不為空或未設置,則回顯${str}\\n

echo -n ${str:+$str\n} # ${str+$str\n} also works

這應該有效:

echo. 

or

echo. SOMEVARIABLE_WHICH_WILL_NOT_OUTPUT_IF_EMPTY

暫無
暫無

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

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