在下面的Bash命令中,含义是什么: !#:* !#:1
echo "This is a sentence." !#:* !#:1- >text3
Run Code Online (Sandbox Code Playgroud)
它使用了bash的历史替换机制.
具体而言,!#指当前行(直到但不包括其!#自身的位置).!#:*是命令名后面的那一行的一部分(因此,在这种情况下,"This is a sentence."). !#:1-相同,!#:*不同之处在于它忽略了最后一个字(所以它不包括的第二个副本"This is a sentence",我们只是通过附加的!#:*).
最终结果是一行三个副本This is a sentence.回显到一个名为的文件中text3.
来自以下内容的输出:
echo "hello" !#
Run Code Online (Sandbox Code Playgroud)
等效于:
echo "hello" echo "hello"
Run Code Online (Sandbox Code Playgroud)
这是:
hello echo hello
Run Code Online (Sandbox Code Playgroud)
!#表示将之前的字符串替换!#为当前行之前的字符串(避免再次写入的快捷方式)
0th 1st 2nd 3rd
-------- ------- ------ --------
echo "hello" echo "hello"
-------- ------- ------ -------
Run Code Online (Sandbox Code Playgroud)
!#:0 表示第0列的替代值
!#:1 表示第一栏的替代价值
例
echo "hello" !#:1
Run Code Online (Sandbox Code Playgroud)
该命令的输出与以下命令的输出相同:
echo "hello" "hello"
Run Code Online (Sandbox Code Playgroud)
这是:
hello hello
Run Code Online (Sandbox Code Playgroud)
!#:1 在第一列中被字符串替换— "hello"
echo "hello" !#:0
Run Code Online (Sandbox Code Playgroud)
产生与以下相同的输出:
echo "hello" echo
Run Code Online (Sandbox Code Playgroud)
这是:
hello echo
Run Code Online (Sandbox Code Playgroud)
!#:0 在第0列中被字符串替换- echo
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |