ip地址作为bash中的变量

时间:2017-02-13 17:06:34

标签: bash variables ubuntu routes ip

为什么我提供这些命令行:

  ip rule add from 10.222.192.0/25 table pdl
  ip route add 10.104.44.0/24 via 10.222.193.17 table pdl
一切正常, 如果我执行这个脚本:

#!/bin/sh

IPRULEADD=$(/sbin/ip rule add)
IPROUTEADD=$(/sbin/ip route add)

#
#

#----------- pdl ---------------------------
echo 100 pdl >> /etc/iproute2/rt_tables

$IPRULEADD from 10.222.192.0/25 table pdl
$IPROUTEADD 10.104.44.0/24 via 10.222.193.17 table pdl

我收到此错误:

from: can't read /var/mail/10.222.192.0/25

由于

2 个答案:

答案 0 :(得分:0)

不要使用子shell来存储变量中的字符串。

dt[melt(dt[, n := seq_len(.N)], id.var = c("n", "PASTE"))[,
               toString(variable[value]), n], on = "n"]

答案 1 :(得分:0)

$(...)不会存储以后执行的代码;它生成所附代码的结果

你想要shell函数。

ip_rule_add () {
    /sbin/ip rule add "$@"
}

ip_route_add () {
    /sbin/ip route add "$@"
}

ip_rule_add from 10.222.192.0/25 table pdl
ip_route_add 10.104.44.0/24 via 10.222.193.17 table pdl   

您传递给函数的任何参数都会使用/sbin/ip表示法正确添加到"$@"的参数列表中。