我试图编写一个脚本来自动在WSL中安装某些东西,然后将存储库克隆到Windows中的用户主文件夹(例如C:/ Users / Frank /)。
为此,我需要获取Windows用户名(例如Frank
)才能知道cd
的存放位置。我发现我可以使用cmd.exe /c '<command>'
执行Windows命令行命令,并且命令echo %USERNAME%
输出Windows用户的用户名。
这是我到目前为止尝试过的:
#!/bin/bash
USER_NAME=`cmd.exe /c 'echo %USERNAME%'`
cd /mnt/c/Users/$USER_NAME
pwd
我收到一个错误,我认为是Windows回车符\r
引起的,我猜这是在echo %USERNAME%
输出的末尾。
错误:
ine 3: cd: $'/mnt/c/Users/Frank\r\r\r': No such file or directory
如何删除输出末尾的所有\r
字符?
答案 0 :(得分:2)
您的代码,已编辑:
#!/bin/bash
UNSANITISED_USER_NAME=`cmd.exe /c 'echo %USERNAME%'`
USER_NAME="${UNSANITISED_USER_NAME//$'\r'}"
cd /mnt/c/Users/$USER_NAME
pwd
它使用某种字符串格式来删除所有来自rici注释here的\r
字符(而不是tr
,在测试中我无法使用)。