在Bash中命令开头忽略“$”

时间:2017-07-20 11:21:03

标签: bash

在许多网站上,在介绍Linux命令时,会在开头写上“$”。 但是,当然,这将导致“$:command not found”错误。

为了避免这种情况,每次都必须删除或替换“$”,但这很麻烦。

所以,如果输入命令的开头是“$”,我认为如果我可以忽略“$”就好了,是否可能?

2 个答案:

答案 0 :(得分:3)

如果确实需要这个,可以在$ PATH中的目录中创建一个文件。该文件将命名为$,并将包含

#!/bin/bash
exec "$@"

让它可执行,然后就可以了

$ echo foo bar
foo bar
$ $ echo foo bar
foo bar
$ $ $ echo foo bar
foo bar
$ $ $ $ echo foo bar
foo bar

请注意,这不会以任何方式影响变量扩展。它只将一个独立的$解释为命令行中的第一个单词作为有效命令。

我刚注意到这个问题:它适用于调用命令,但不适用于特定于shell的结构:

$ foo=bar
$ echo $foo
bar
$ $ foo=qux
/home/jackman/bin/$: line 2: exec: foo=qux: not found

$ { echo hello; }
hello
$ $ { echo hello; }
bash: syntax error near unexpected token `}'

总之,其他人都是对的:更好地使用鼠标。

答案 1 :(得分:-1)

是的,当您从网站复制命令时,可以忽略命令提示符。使用shift和箭头键忽略提示。这也可以帮助您忽略#符号的使用,该符号用于指示需要管理权限的命令。