我在bash腳本中打印類似10x10的東西時遇到了麻煩。這裏是我有:
#!/bin/bash
i="2"
array=(1024 2048 4096 6144)
while [ $i -lt 17 ]
do
for j in "${array[@]}"
do
:
secondpart=$((j/i))
echo "$jx$jx$j and $secondpartx$secondpart"
done
echo "\n"
i=$[$i*2]
done
預期輸出是: 1024x1024x1024和512×512
順便說一句,當run沒有被很好地定義時,'echo'會產生什麼樣的結果 - 事實上,如果沒有XSI擴展,POSIX標準沒有定義echo的行爲,如果它的輸入包含任何反斜槓的話。如果你只是想發出一個換行符,可以考慮一個簡單的'echo'。 (有關「echo」是否有保證的詳細信息,請參閱http://pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html;如果您查看APPLICATION USAGE部分,您將請注意'printf'通常是模糊情況下的首選/現代替代品)。 –
不標記爲重複,但超密切相關:http://stackoverflow.com/questions/8748831/when-do-we-need-curly-braces-in-variables-using-bash –
@CharlesDuffy:抱歉,錯過了EXEC。我編輯過它。由於它是相同的東西,我在這裏跟進了。 ( – newbiecoder