沒有特別的原因,我想製作一個自動運行196算法的腳本。即使找到了Lychrel數字,代碼也會拋出溢出錯誤。我的代碼如下。製作一個簡單的Bash腳本來通過196算法生成迴文
#!/bin/bash
echo -n "Enter Natural Number above 10 as Maximum > "
read max;
if [[ $max <= "10" || $max =~ ^[0-9]+$ ]];
then
echo "Improper input. Rerun Script."
exit 1
else
for int in {10..$max}
do
int2=$int
while [[ $int2 != `echo $int2 | rev` ]]
do
int2=$(expr $int2 + $(echo $int2 | rev))
done
echo $int2 >> Palindrome.txt
echo `awk '!a[$0]++' Palindrome.txt` > Palindrome.txt
done
exit 0
fi
而且似乎我的代碼吐出一個錯誤無論怎樣,在線4
Enter Natural Number above 10 as Maximum > test
./Palindrome.sh: line 4: syntax error in conditional expression
./Palindrome.sh: line 4: syntax error near `"10"'
./Palindrome.sh: line 4: `if [[ $max <= "10" || $max =~ ^[0-9]+$ ]];'
我怎樣才能修復4號線?我是否正確使用「退出」?第4行的條件應該檢測字符串是否低於10或不是整數。
請看看:http://www.shellcheck.net/ – Cyrus
shellcheck是一個好主意,因爲腳本還有其他問題,再加上你可能想再次看看你是否在工作,它不符合您的要求。 – grail