【问题标题】:Fish shell: variable with last argument鱼壳:带有最后一个参数的变量
【发布时间】:2020-01-22 23:27:52
【问题描述】:

mkdir -p foo/bar/baz/quux && cd $_ 对应的鱼壳是什么?

我知道$history[1],但这里我只需要前一个命令的最后一个参数。

【问题讨论】:

    标签: fish


    【解决方案1】:

    作为suggested in another thread Alt+. 在光标输入处循环来自先前命令的参数:

    mkdir -p ~/fish/previous/arg/demo
    cd 
    #  ^ hit Alt + .
    cd ~/fish/previous/arg/demo
    

    【讨论】:

      【解决方案2】:

      我还发现缺少$_ 很烦人。一个(有点老套的)解决方案是创建一个这样的函数:

      function cdl
          echo $history[1] | read --array result
          cd $result[-1]
      end
      

      所以现在您可以输入cdl 而不是cd $_ 来切换到您刚刚创建的目录。

      【讨论】:

        【解决方案3】:

        不幸的是,fish 不支持最后一个参数变量。

        一种高效的交互方式是创建目录:

        > mkdir -p foo/bar/baz/quux
        

        然后输入 cd 和路径的第一个字符。

        > cd f
        

        此时鱼可能会自动提示整个路径。如果没有,您可以按 alt-up 进行历史令牌搜索,它肯定会找到它。

        执行此操作的脚本方法是:

        set path foo/bar/baz/quux && mkdir -p $path && cd $path
        

        【讨论】:

          【解决方案4】:

          Fish 对此没有捷径,你必须重复那个论点。

          或者,如果它是用于交互使用,请按 alt-up 循环浏览旧参数。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-08-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-22
            相关资源
            最近更新 更多