可以在同一行中重用 BASH 行的第一个参数吗?

可以在同一行中重用 BASH 行的第一个参数吗?

我在 BASH 中这样做

echo test "$1"

..期待得到..

test test

..但我明白..

test

这是可以做的事情吗?这会让我的生活更轻松,因为有了一个列表文件我可以做类似的事情mv a/b/test.py proj_copy/$1

答案1

您可以使用历史扩展

$ echo test !#:^
echo test test
test test

$ echo a/b/test.py proj_copy/!#:^
echo a/b/test.py proj_copy/a/b/test.py
a/b/test.py proj_copy/a/b/test.py

!#
到目前为止输入的整个命令行。

:^
第一个参数


您还可以使用大括号扩展

$echo test{,}
test test

$echo {,proj_copy}/a/b/test.py
/a/b/test.py proj_copy/a/b/test.py

相关内容