[英]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.