我不确定我是否执行了以下非法或真实的
但我需要的是 - 创建一组准备好的命令
,所以如果我需要使用,例如将 IP 地址与 4 个八位字节匹配,我可以使用命令 - command_that_match_four_octet
如果我正确执行了以下操作,请提出建议,我想知道以下语法是否会引起麻烦。
[root@su1a /tmp]# command_that_match_four_octet=" grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' "
[root@su1a /tmp]# command_that_match_three_three_octet=" grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' "
.
[root@su1a /tmp]# echo 23.4.5.1 | eval $command_that_match_four_octet
23.4.5.1
[root@su1a /tmp]# echo 23.4.5 | eval $command_that_match_three_three_octet
23.4.5
你所说
shortcut
的似乎是一种alias
或更复杂的functions
。为了回答你的问题,你可以:
或者
有一个 bash 函数将检查 IP (v4) 和更多这将计算 32 位整数,如果参数是一个有效的 IP 并返回一个
RC > 0
if else:比现在:
可用于 IP 计算:
有后台功能:
因此,作为一种良好做法,您可以:
完成输入的检查、验证和转换的地方只有一个操作:
如果
$netMask
不匹配 IPv4,命令check_Is_Ip
将失败,然后die
将被执行。如果不是,转换结果将存储在intMask
变量中。如果你想创建另一个命令的快捷方式,你可以使用内置的 shell 命令
alias
。有关更多信息,您可以查看man bash
。例如,您可以使用: