/bin/dashで$ 1が整数であることを確認する最善の方法は何ですか?
Bashでは、次のことができます。
[[ $1 =~ ^([0-9]+)$ ]]
しかし、これはPOSIXと互換性がないようで、ダッシュはそれをサポートしていません。
ベストアンサー1
以下は整数(正または負)を検出し、dash
POSIXの両方で動作します。
オプション1
echo "$1" | grep -Eq '^[+-]?[0-9]+$' && echo "It's an integer"
オプション2
case "${1#[+-]}" in
''|*[!0-9]*)
echo "Not an integer" ;;
*)
echo "Integer" ;;
esac
または:
(nop)コマンドを少し使用してください。
! case ${1#[+-]} in *[!0-9]*) :;; ?*) ! :;; esac && echo Integer