Bash中的bang dollar(!$)是什么?
Bang dollar似乎指的是最后一个命令行的最后一部分 例如Bash中的bang dollar(!$)是什么?,bash,syntax,symbols,Bash,Syntax,Symbols,Bang dollar似乎指的是最后一个命令行的最后一部分 例如 我可以在美元变量(例如,$!)上找到很多,但在这方面没有。有什么解释吗?这是上一个命令的最后一个参数。从: !!:$ 指定前面命令的最后一个参数。这可以缩短为$ 备注。如果你想玩转Bash的历史,我建议你打开shell选项histverify如下: shopt -s histverify (您也可以将其放在.bashrc中,使其永久打开)。使用历史替换时,不会立即执行替换;相反,它被放在readline的缓冲区中,等待您按ent
我可以在美元变量(例如,
$!
)上找到很多,但在这方面没有。有什么解释吗?这是上一个命令的最后一个参数。从:
!!:$代码>
指定前面命令的最后一个参数。这可以缩短为$代码>
备注。如果你想玩转Bash的历史,我建议你打开shell选项histverify
如下:
shopt -s histverify
(您也可以将其放在.bashrc
中,使其永久打开)。使用历史替换时,不会立即执行替换;相反,它被放在readline的缓冲区中,等待您按enter键……或者不按
要使事情精确,请键入$
不等同于键入“$\uCode>:$
实际上是一个历史替换,指的是输入的上一个命令的最后一个字,而“$\u”
是先前执行的命令的最后一个参数。您可以比较两者(我有shopt-s histverify
):
此外:
而且:
$ echo zee; echo "$_"
zee
zee
$ echo zee2; echo !$
$ echo zee2; echo "$_"
而且
$ echo {1..3}
1 2 3
$ echo "$_"
3
$ echo {1..3}
1 2 3
$ echo !$
$ echo {1..3}
$ echo one ;
$ echo "$_"
one
$ echo one ;
one
$ echo !$
$ echo ;
而且
$ echo {1..3}
1 2 3
$ echo "$_"
3
$ echo {1..3}
1 2 3
$ echo !$
$ echo {1..3}
$ echo one ;
$ echo "$_"
one
$ echo one ;
one
$ echo !$
$ echo ;
还有很多其他示例,例如,使用别名。这是上一个命令的最后一个参数。从:
!!:$代码>
指定前面命令的最后一个参数。这可以缩短为$代码>
备注。如果你想玩转Bash的历史,我建议你打开shell选项histverify
如下:
shopt -s histverify
(您也可以将其放在.bashrc
中,使其永久打开)。使用历史替换时,不会立即执行替换;相反,它被放在readline的缓冲区中,等待您按enter键……或者不按
要使事情精确,请键入$
不等同于键入“$\uCode>:$
实际上是一个历史替换,指的是输入的上一个命令的最后一个字,而“$\u”
是先前执行的命令的最后一个参数。您可以比较两者(我有shopt-s histverify
):
此外:
而且:
$ echo zee; echo "$_"
zee
zee
$ echo zee2; echo !$
$ echo zee2; echo "$_"
而且
$ echo {1..3}
1 2 3
$ echo "$_"
3
$ echo {1..3}
1 2 3
$ echo !$
$ echo {1..3}
$ echo one ;
$ echo "$_"
one
$ echo one ;
one
$ echo !$
$ echo ;
而且
$ echo {1..3}
1 2 3
$ echo "$_"
3
$ echo {1..3}
1 2 3
$ echo !$
$ echo {1..3}
$ echo one ;
$ echo "$_"
one
$ echo one ;
one
$ echo !$
$ echo ;
还有很多其他的例子,例如有别名。$
可以执行$\uu
所做的操作,除了$\u
不存储它返回给历史记录的值(作为其替换)之外
这里有一个例子
使用$代码>
za:tmep za$ ls -lad
drwxr-xr-x 4 za staff 136 Apr 6 2016 .
za:tmep za$ !$
-lad
-bash: -lad: command not found
za:tmep za$ history | tail -n 3
660 ls -lad
661 -lad <<== history shows !$ substitution.
662 history | tail -n 3
更多选择:
!^ first argument
!:2 second argument
!:2-$ second to last arguments
!:2* second to last arguments
!:2- second to next to last arguments
!:2-3 second to third arguments
!$ last argument
!* all arguments
$
可以执行$\uu
所做的操作,除了$\u
不存储它返回给历史记录的值(作为其替换)之外
这里有一个例子
使用$代码>
za:tmep za$ ls -lad
drwxr-xr-x 4 za staff 136 Apr 6 2016 .
za:tmep za$ !$
-lad
-bash: -lad: command not found
za:tmep za$ history | tail -n 3
660 ls -lad
661 -lad <<== history shows !$ substitution.
662 history | tail -n 3
更多选择:
!^ first argument
!:2 second argument
!:2-$ second to last arguments
!:2* second to last arguments
!:2- second to next to last arguments
!:2-3 second to third arguments
!$ last argument
!* all arguments
猴子的回答:
惠特!$您可以轻松打印上一个命令的最后一个单词
#Create new file
touch newfile.txt
#Edit new file using !$ instead newfile.txt again
nano !$
猴子的回答:
惠特!$您可以轻松打印上一个命令的最后一个单词
#Create new file
touch newfile.txt
#Edit new file using !$ instead newfile.txt again
nano !$
通常/经常与历史记录命令相关。根据,它是上一个命令的最后一个参数
通常/经常与历史记录命令相关。根据,这是上一条命令的最后一个参数,从技术上讲,$
和$\uuu
不一样<代码>$代码>作用于更高级别。您可以看到别名、复合命令或多个命令之间的差异。比较echo$在下列情况下,使用echo$\ucode>编码:1<代码>{echo zee;}
;2. <代码>如果为真;然后回应一个;其他两个;fi
;3.还可以键入两个命令,例如,echo-zee;echo$和echo zee2;回声$代码>。从技术上讲,$
和$\uuu
不一样<代码>$代码>作用于更高级别。您可以看到别名、复合命令或多个命令之间的差异。比较echo$在下列情况下,使用echo$\ucode>编码:1<代码>{echo zee;}
;2. <代码>如果为真;然后回应一个;其他两个;fi
;3.还可以键入两个命令,例如,echo-zee;echo$和echo zee2;回声$代码>^1用于很好的示例…..所以两者都有共同的函数,但它们并不相同。@zee:事实上,它们并不是在同一级别上玩的。+
用于很好的示例集。。。。但只能在交互模式下工作!!:比较bash-c$'echo hello world\necho!$'
vsbash-c$'echo hello world\necho$\'
。。。我有一个“快乐”,我有一个“新年”,韩!“新年快乐!”@gniourf\gniourf@F.Hauri:当然,这是关于历史的扩展。^1对于伟大的例子来说……所以两者都有共同的功能,但它们并不相同。@zee:事实上,它们并不是在同一个级别上玩的。++
对于一组好的例子来说。。。。但只能在交互模式下工作!!:比较bash-c$'echo hello world\necho!$'
vsbash-c$'echo hello world\necho$\'
。。。我有一个“快乐”,我有一个“新年”,韩!“新年快乐!”@gniourf\gniourf@当然,这是关于历史的扩展。