これは、特定の状況で役立つもうXNUMXつのヒントです。 いつかまたこれが必要になることを知っているので、私はこの投稿を思い出させるためにもっとやります。
でスクリプトを実行しているとき bash、およびユーザーはIPアドレスを入力する必要があります。後で私たち(スクリプト)がそのIPアドレスを使用して何かを行うために、すべてがうまくいかない可能性がある場所を知っていますか? ...ユーザーがIPを入力しないこと、意味のないIPや不完全なIPなどを入力すること、プログラムする人は私が何を意味するかを知っています...最もばかげたことさえ起こると考えてプログラムする必要があるため O_O.
この状況を正確に回避するために、IPを検証する、つまり、ユーザーが入力したデータが実際にIPであるかどうかを確認する機能または方法があります。
ここに私はそれらを残します:
function validar_ip()
{
local ip=$ipdudosa
local stat=1
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
stat=$?
fi
return $stat
}
ユーザーが「何か」を入力すると、その何かが変数の値になります 疑わしい ...コードは次のようになります:
echo " Inserte lo que desea comprobar si es una IP."
read "ipdudosa"
そして今、私たちはの内容または価値を検証することを示します 疑わしい 上記の関数を使用すると、実際にIPであるかどうかがチェックされます。 IPの場合はそのように表示され、そうでない場合はIPではないことが通知されます。
if validar_ip ipdudosa;
then echo "Sí, es una IP correcta :D";
else
echo "No, eso NO es una IP";
fi
ここに完全なスクリプトを残します:
IPを検証する機能(例)
最初に私がそれを宣言することをよく見てください: #!/ bin / bashに ...彼らが置くなら #!/ bin / shを これは機能しません。機能が機能しなかったため、私はほぼ2日間、戦いと抗議に費やしました。 sh bashhahahaの代わりに。
追加するものは他にありません。これには関数があります。 Python , パール および他の言語...実際、私があなたに示すこれは、IPを検証する唯一の方法ではありません bash、しかしそれは私にとって非常に良かったので私はそれを共有します🙂
よろしく
完璧です! とても興味深い。 どうもありがとう。
立ち寄ってコメントしてくれてありがとう😀
すごい! では、これを「if [[$ ip =〜^ [0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \」に適合させてみましょう。 。[0-9] {1,3}]]; " ipv6がひどく書かれていることを検出するように...暴力的... o_0HEXadecimalとその128ビットを置くことになる混乱。
確かに、これは私が提起した架空のケースです🙂
IPv6に…くそー、冗談すら…そのままにしておきます…IPv6が何であるか(操作)さえ理解していなければ、私はIP LOLを検証しようとさえしません!
hehe、それが本当なら、それについて考えるのは恐ろしいですが、アプローチは存在します😛
すでに機能しています。shscriptではなく./scriptを実行するだけです。
はい、もちろん、shスクリプトを実行すると、shで解釈しようとします.... / script.shと同じにするためにbashスクリプトを実行する必要があります😉
こんにちは、あなたの助けに感謝します、それは非常に役に立ちました。