【问题标题】:Edit the source file of an alias with that alias in bash在 bash 中使用该别名编辑别名的源文件
【发布时间】:2022-10-24 02:38:47
【问题描述】:

我设置了一个自定义 bashrc (~/.local/share/mybashrc)

我想设置一个别名来从这个文件中编辑这个文件。

#~/.local/share/mybashrc

alias edit-conf='nano $0'

但这转到“nano /bin/bash”

有没有办法设置别名来编辑当前文件?

【问题讨论】:

  • alias edit-conf='nano ~/.local/share/mybashrc'?

标签: bash alias


【解决方案1】:

您可以使用${BASH_SOURCE[0]}realpath(或readlink):

mypath="$(realpath -e "${BASH_SOURCE[@]}")"
alias editconf="nano '$mypath'"

【讨论】:

  • -n 是多余的,因为结尾的换行符将被命令替换 $() 剥离
  • 为什么readlink 而不是realpathreadlink -e 还将解析路径中的所有符号链接,这可能不是 OP 想要的,尽管它不会受到伤害。
  • @wjandrea 是的,我知道它会删除换行符,但删除它也没有什么坏处。由于它将被剥离,并且可以选择根本不输出它,我们也可以跳过输出它。当谈到readlinkrealpath 时,在这种情况下我没有强烈的偏好。你认为realpath 会是更好的选择吗?
  • 是的,realpath 做得很好,也不需要解析符号链接。
  • @wjandrea 好的,更新了。
猜你喜欢
  • 2020-07-28
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多