如何使用 $ 符号?

2 command-line

我知道可能有很多专门讨论这个符号的论坛,但我想知道如何在调用中使用 $。我知道该怎么做

echo $USER
Run Code Online (Sandbox Code Playgroud)

但是,如果我想通过查找子网运行类似 nmap 之类的程序,或者如果我想创建一个文件,因为这些不起作用,我该如何扩展我对这个符号的了解:

 mkdir $IP
 mkdir $gateway

 nmap $ip
 nmap $subnetwork
Run Code Online (Sandbox Code Playgroud)

你能举例说明如何使用这个符号来制作文件或拉取信息吗?

sud*_*dus 6

一般的

$ as in 的基本用途$USER是告诉shell,您在谈论一个shell 变量。

查看man bash并滚动到(或跳转到)

  • Special Parameters
  • EXPANSION
  • Parameter Expansion

但是可能有点难以消化man bash. 您可能会发现阅读一些教程更容易,例如,您可以通过互联网找到这些教程

例子

必须定义 shell 变量(通常在 shell 中或由您专门定义)。例如USER是一个通用变量,但subnet在我的计算机中没有定义,所以我必须声明它,

subnet="some-text-or-number-string"
Run Code Online (Sandbox Code Playgroud)

然后它可以被查看

echo "$subnet"
Run Code Online (Sandbox Code Playgroud)

并在其他命令中使用(就像您想使用它一样)。

IP 未在我的计算机中定义,但标准变量使用大写字母,因此您自己的变量最好使用小写字母以避免冲突。

ip=192.168.0.2
Run Code Online (Sandbox Code Playgroud)

你可以检查它

echo "$ip"
Run Code Online (Sandbox Code Playgroud)

并删除它

unset ip
Run Code Online (Sandbox Code Playgroud)

根据@Terrance 和@Jo-ErlendSchinstad 的提示添加示例

您正在寻找的命令nmap可以ip route像这样完成:

nmap -sP $(ip route | grep kernel | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)

where$(a command line)允许您在 shell 上下文中使用命令行的 [标准]输出,用以下更简单的示例进行解释,

myusername=$(whoami)
Run Code Online (Sandbox Code Playgroud)

哪些可以查看

echo $myusername
Run Code Online (Sandbox Code Playgroud)

一个简单的整数计算器是用双括号创建的,如下所示,

$ echo $((1+2))
3

$ r=5
$ area=$((r**2 * 314 / 100))
$ echo "the circle's area is approx. = $area"
the circle's area is approx. = 78
Run Code Online (Sandbox Code Playgroud)