如何在一行中多次使用命令输出

如何在一行中多次使用命令输出

git init lerna-repo && cd lerna-repo我有这个重复的命令learna-repo。我想知道如何使它最小化,这样我只需要写learna-repo一次。

我尝试了一些东西,发现我使用了类似的东西repo="larna-repo" && git init $repo && cd $repo,但是这会将变量保留在 shell 中(之后如果我运行echo $repo变量仍然存在)。

我可以做一些像管道一样的事情|来暂时传递它echo "Hello World!" | grep "Hello"但想多次使用输出。

谢谢。

答案1

在命令行上,您可以使用Alt-.重复上一个命令的最后一个参数:

git init lerna-repo
光盘Alt-.

或者,您可以使用历史扩展:

git init lerna-repo
cd !:2  # Repeats the second argument

答案2

使用 bash历史扩展,您可以输入

git init lerna-repo && cd !#:2

在哪里:

  • !#是当前命令行,并且
  • :2是第三个词。

但如果你经常这样做,可以编写一个函数:

gicd() { 
    git init "$1" && cd "$1"
}

gicd lerna-repo

相关内容