Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
这是我的代码:
在这里,我试图将
所以我的期望是,它应该像下面这样通过
在这里,我得到许可被拒绝的异常。还有其他可能的方法吗?
预期产量:
然后,您会注意到在两种情况下都执行
将按预期工作(在zsh中失败),但是如果引用
它失败。
您尝试执行类似的操作,但是在命令替换
简而言之:不要
但是做
我还修复了您对
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
这是我的代码:
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
最佳答案
注意:此答案假定为bash。其他外壳具有不同的行为。
如果您尝试类似的操作:
bash-4.2$ command="ls"
bash-4.2$ $command
bash-4.2$ "$command"
然后,您会注意到在两种情况下都执行
ls
。但是,如果尝试以下操作:bash-4.2$ command="ls -l"
bash-4.2$ $command
将按预期工作(在zsh中失败),但是如果引用
bash-4.2$ "$command"
bash: ls -l: command not found
它失败。
您尝试执行类似的操作,但是在命令替换
$(command)
中引用了该命令。简而言之:不要
CONFIG= ifconfig lo;
MAC_ADDRESS="$("${CONFIG}" | awk '/HWaddr/ {print $NF}' | sed -e 's/://g')";
但是做
CONFIG="ifconfig lo"
MAC_ADDRESS="$(${CONFIG} | awk '/HWaddr/ {print $NF}' | sed -e 's/://g')";
我还修复了您对
CONFIG
的定义,因为它需要,并且-符号(=
)前后不允许有空格。关于linux - IFCONFIG值未传递到 shell 中的另一个变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52778285/
10-12 17:10