![可以在同一行中重用 BASH 行的第一个参数吗?](https://linux22.com/image/89259/%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%90%8C%E4%B8%80%E8%A1%8C%E4%B8%AD%E9%87%8D%E7%94%A8%20BASH%20%E8%A1%8C%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%E5%90%97%EF%BC%9F.png)
我在 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