[英]request a variable by comparing two strings in shell script
我想比較兩個變量,以檢查此比較是否為空。 我知道它很混亂,但是我不知道如何更好地解釋它。 這是一個小的示例代碼:
declare -a List=("human" "animal")
sqlhuman="SELECT * FROM example;"
for i in "${List[@]}"
do
if[ -n "sql$i"];then
#execute sql
else
#do nothing
fi
done
在這種情況下,腳本將檢查“ sqlhuman”和“ sqlanimal”是否為空。 當然它們不是空的。 兩者都有超過1個字母。 我希望它們作為變量的指針,並檢查它們是否為空。
所以我需要的是動態構建變量目錄。 例如,在第一個迭代器上,他應該檢查$ sqlhuman是否為空。
您正在檢查字符串 sqlhuman
是否為空,而不是名為sqlhuman
的變量的內容。 使用間接參數擴展:
var="sql$i"
if [ -n "${!var}" ]; then
也就是說,功能將是一種更為簡潔的方法。
do_sql () {
case $1 in
human) echo "running sql for human" ;;
animal) echo "running sql for animal" ;;
*) echo "doing nothing" ;;
esac
}
for i in "${List[@]}"; do
do_sql "$i"
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.