【问题标题】:Alias stops working after adding another one [duplicate]添加另一个别名后别名停止工作[重复]
【发布时间】:2021-01-21 20:56:58
【问题描述】:

我在 Windows 上使用 WSL2 Ubuntu。我在 WSL 中定义的 Windows 上有一个打开 Notepad++ 的别名,如下所示:

alias npp="/mnt/c/Program\ Files/Notepad++/notepad++.exe"

它可以工作......但只要我添加另一个别名,例如

alias npp="/mnt/c/Program\ Files/Notepad++/notepad++.exe"
alias l="ls -l"

我收到错误 - : No such file or directory/Notepad++/notepad++.exe。仅当它是文件中定义的最后一个别名时才有效。

我的猜测是它可能与 Notepad++ 路径中的空格有关,但我不太确定了。我尝试了不同的逃脱方式,但没有运气。这里发生了什么,原因和解决方法是什么?

【问题讨论】:

  • 您在哪里定义这些别名,您是否有机会使用 Notepad++ 编辑文件?我认为这可能是一个行尾问题。
  • 您的文件中有一个 CR 字符。 您设置的别名值实际上是 /mnt/c/....notepad++.exe<CR>,这是一个不存在的文件名。使用可以删除 CR 的编辑器编辑文件,或者使用 dos2unix(如果包含在您使用的发行版/实例中)。
  • 另外,npp 的定义可能是文件的 最后 行,直到您添加了额外的行,它才以 CRLF 结尾。 bash 需要一个 POSIX 文本文件:其中 每一行 行都以换行符结束; CRLF 对的 CR 被视为任何其他字符。
  • 没错!我主要用 nano 编辑 unix 系统文件,但它可能发生过我用 Notepad++ 打开过别名文件一次 :) 谢谢。

标签: bash newline wsl-2


【解决方案1】:

我可以重现 if 我使用 Notepad++ 编辑具有这些别名的脚本,并将行尾保留为“Windows”。如果您想使用 Notepad++ 编辑您的 bash 脚本,请确保在保存前使用 Edit -> EOL Conversion -> Unix (LF) .

完成此操作后,别名脚本对我来说可以正常工作。

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 2022-12-11
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2019-01-21
    • 2012-12-09
    相关资源
    最近更新 更多