Bash:将命令结果存储在变量中会弄乱输出

Bash:将命令结果存储在变量中会弄乱输出

我在 WSL 中,尝试获取 Windows 用户名:

#!/bin/bash

WINDOWS_USER=$("whoami.exe")
echo "Windows username: '${WINDOWS_USER}'"

但输出有点混乱:

$ ./createNewUser.sh
'indows username: 'intra\user

我实际上期望输出Windows username: 'intra\user'。但最后一个'移到了句子的开头——怎么会发生这种情况呢?

答案1

问题是这个命令在\r最后一个\n.可以通过以下方式删除它:

WINDOWS_USER=$(whoami.exe | tr -d '\r')

相关内容