【发布时间】:2018-10-12 11:10:39
【问题描述】:
这是我的一段代码:
CONFIG= ifconfig lo;
MAC_ADDRESS="$("${CONFIG}" | awk '/HWaddr/ {print $NF}' | sed -e 's/://g')";
MAC_ADDRESS2="$("${CONFIG}" | awk '/HWaddr/ {print $NF}' | sed -e 's/://g')";
echo "$MAC_ADDRESS"
echo "$MAC_ADDRESS2"
在这里,我尝试将ifconfig lo 设置为单个变量,并尝试将其传递给另一个需要它的变量。
所以我的期望是,它应该像下面这样通过
MAC_ADDRESS="$(ifconfig lo | awk '/HWaddr/ {print $NF}' | sed -e 's/://g')";
MAC_ADDRESS2="$(ifconfig lo | awk '/HWaddr/ {print $NF}' | sed -e 's/://g')";
在这里我得到了权限被拒绝的异常。还有其他可能的方法吗?
预期输出:
JUKUJSDJDJSJDJSJ
KIIPPSKKSKDKDKKS
【问题讨论】:
-
能否请您尝试将
"${CONFIG}"更改为echo "$CONFIG"一次,然后让我知道? -
@RavinderSingh13 。问题不在于 echo 。我需要将此
CONFIG传递给MAC_ADDRESS -
请添加样本(不是实际地址)作为样本输入和您想要实现的样本预期输出?
-
@RavinderSingh13 我已经用示例输出更新了问题。你可以检查一下吗?
-
"ifconfig lo"不是有效的命令名称;您想使用参数lo运行命令ifconfig。此外,等号后不能有空格。 (将命令放入变量中充其量似乎是多余的,最坏的情况是引起疯狂的mywiki.wooledge.org/BashFAQ/050。)