Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash中的bang dollar(!$)是什么?_Bash_Syntax_Symbols - Fatal编程技术网

Bash中的bang dollar(!$)是什么?

Bash中的bang dollar(!$)是什么?,bash,syntax,symbols,Bash,Syntax,Symbols,Bang dollar似乎指的是最后一个命令行的最后一部分 例如 我可以在美元变量(例如,$!)上找到很多,但在这方面没有。有什么解释吗?这是上一个命令的最后一个参数。从: !!:$ 指定前面命令的最后一个参数。这可以缩短为$ 备注。如果你想玩转Bash的历史,我建议你打开shell选项histverify如下: shopt -s histverify (您也可以将其放在.bashrc中,使其永久打开)。使用历史替换时,不会立即执行替换;相反,它被放在readline的缓冲区中,等待您按ent

Bang dollar似乎指的是最后一个命令行的最后一部分

例如


我可以在美元变量(例如,
$!
)上找到很多,但在这方面没有。有什么解释吗?

这是上一个命令的最后一个参数。从:

!!:$

指定前面命令的最后一个参数。这可以缩短为
$

备注。如果你想玩转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!$'
vs
bash-c$'echo hello world\necho$\'
。。。我有一个“快乐”,我有一个“新年”,韩!“新年快乐!”@gniourf\gniourf@F.Hauri:当然,这是关于历史的扩展。^1对于伟大的例子来说……所以两者都有共同的功能,但它们并不相同。@zee:事实上,它们并不是在同一个级别上玩的。
++
对于一组好的例子来说。。。。但只能在交互模式下工作!!:比较
bash-c$'echo hello world\necho!$'
vs
bash-c$'echo hello world\necho$\'
。。。我有一个“快乐”,我有一个“新年”,韩!“新年快乐!”@gniourf\gniourf@当然,这是关于历史的扩展。