今天才刚开始玩 fish shell ,并试图转换Bash函数。它有效,但是我想知道是否有一种更优雅的方法来传递 fish 中的所有参数。

Bash函数在Docker容器中运行Elixir命令:

function elixir () {
  docker run --rm -it -v $(pwd):/app -w /app elixir \
  sh -ci "elixir $*"
}

fish 的功能:
function elixir --description "command to run Elixir in Docker"
  docker run --rm -it -v (pwd):/app -w /app elixir elixir $argv[1..-1]
end

谢谢!

最佳答案

在fish中,所有变量都是列表,$var扩展到整个列表,每个元素一个参数(因此,没有分词或其他操作)。

因此,只需$argv就足够了,无需指定[1..-1]

关于bash - 将所有参数传递给 fish shell 中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48090500/

10-13 07:24