【问题标题】:.bashrc command to copy current working directory.bashrc 命令复制当前工作目录
【发布时间】:2021-02-17 18:38:36
【问题描述】:

我正在尝试为以下命令编写一个别名,该命令将您当前的工作目录用引号括起来,并将其复制到剪贴板。

echo \"$(pwd)\" | xclip

但是,在 .bashrc 中为此编写别名并不完全正确。这是我写的别名:

alias cpwd="echo \"\$(pwd)\" | xclip"

但是当该命令运行时,双引号会被省略。我检查了类似问题的答案,例如bash alias command with both single and double quotes,但我认为我正在转义所有必需的字符,所以我不知道为什么这个命令不起作用。

命令的当前结果类似于:home/user/My Folder 而不是我想要的"home/user/My Folder"

【问题讨论】:

    标签: bash escaping alias


    【解决方案1】:

    你需要更多的逃避。你已经正确地逃脱了$;您需要对现有的反斜杠执行相同的操作。

    alias cpwd="echo \\"\$(pwd)\\" | xclip"
    

    或者,您可以使用单引号避免所有转义。

    alias cpwd='echo \"$(pwd)\" | xclip'
    

    最重要的是,使用函数而不是别名。一个函数让您可以像平常一样编写命令,而无需任何额外的引号或转义。

    cpwd() {
        echo \"$(pwd)\" | xclip
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-06
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 2016-03-22
      相关资源
      最近更新 更多