将所有参数传递给fishshell中的函数

iq3niunx  于 11个月前  发布在  Shell
关注(0)|答案(1)|浏览(142)

今天刚开始玩fish shell,试图翻译一个Bash函数。它可以工作,但我想知道是否有一种更优雅的方式来传递fish中的所有参数。
这是在Docker容器中运行Elixir命令的Bash函数。我使用$*是这样的:

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

在fish中,我这样使用$argv[1..-1]

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

有没有更优雅的方式来做到这一点?谢谢你,谢谢

bxpogfeg

bxpogfeg1#

在fish中,所有的变量都是列表,$var扩展到整个列表,每个元素一个参数(所以没有单词分割或任何东西)。
所以只要$argv就足够了,没有必要指定[1..-1]

相关问题