変数が数値/整数かどうかをテストする興味深い Bash スクリプトを見つけました。好きだけど「0」が数字として認識されない理由が分からない?著者にはお尋ねできません。こんにちは、匿名です。
#!/bin/bash
n="$1"
echo "Test numeric '$n' "
if ((n)) 2>/dev/null; then
n=$((n))
echo "Yes: $n"
else
echo "No: $n"
fi
ありがとうございました!
更新 - 2012 年 4 月 27 日。
これは私の最終的なコードです(短いバージョン):
#!/bin/bash
ANSWER=0
DEFAULT=5
INDEX=86
read -p 'Not choosing / Wrong typing is equivalent to default (#5): ' ANSWER;
shopt -s extglob
if [[ $ANSWER == ?(-)+([0-9]) ]]
then ANSWER=$((ANSWER));
else ANSWER=$DEFAULT;
fi
if [ $ANSWER -lt 1 ] || [ $ANSWER -gt $INDEX ]
then ANSWER=$DEFAULT;
fi