此命令从日志中获取所有用户。效果很好
grep $srcIP $cFilename | grep "Username: " | awk -F"Username: " '{print $2}'| awk -F"," '{print $1}' | sort -u
所以它会显示
user1 user2 user3 user4 etc...
我将它分配给一个变量,到目前为止一切顺利
getUser=$(grep $srcIP $cFilename | grep "Username: " | awk -F"Username: " '{print $2}'| awk -F"," '{print $1}' | sort -u)
如果我想显示第二个用户
echo $getUser | awk '{print $2}'
它将显示
user2
但是如果我将该命令分配给一个变量
tmp=$($getUser | awk '{print $2}')
现在,我收到一条错误消息
user2: command not found
谁知道如何将此命令语句分配给变量?
$getUser | awk '{print $2}'
这是你的问题。
让我们分解一下。$(...) 是要执行里面的代码。
接下来是“$getUser”,因此它将输出(在本例中)“User2”。
因此,当 $(...) 运行时,它正在寻找名为“User2”的命令。那就是当您遇到错误“User2:找不到命令”时。
你需要做的是打印出 $getUser,在前面添加 'echo',这样 '$(...)' 将执行 'echo' 而不是尝试运行名为 'User2' 的命令。