我知道可能有很多论坛专门讨论这个符号,但我想知道如何在调用中使用 $。我知道如何做
echo $USER
但是如果我想运行像 nmap 这样的程序来查找子网,或者我想创建一个文件,我该如何扩展我对这个符号的了解,因为这些不起作用:
mkdir $IP
mkdir $gateway
nmap $ip
nmap $subnetwork
您能否举一些例子来说明如何使用这个符号来制作文件或提取信息?
答案1
一般的
$ 的基本用途是$USER
告诉 shell 您正在谈论一个 shell 变量。
看man bash
并滚动至(或跳至)
Special Parameters
EXPANSION
Parameter Expansion
但可能有点难以理解这些描述man bash
。你可能会发现阅读一些教程,例如,你可以通过互联网找到
例子
shell 变量必须定义(要么在 shell 中定义,要么由您自己定义)。例如,USER
是一个通用变量,但subnet
在我的计算机中没有定义,所以我必须声明它,
subnet="some-text-or-number-string"
然后可以通过
echo "$subnet"
并在其他命令中使用(就像您想使用它一样)。
IP
在我的计算机中没有定义,但是标准变量使用大写,因此最好对自己的变量使用小写以避免冲突。
ip=192.168.0.2
你可以使用以下方法检查
echo "$ip"
并将其删除
unset ip
根据@Terrance 和@Jo-ErlendSchinstad 的提示添加示例
您正在寻找的命令可以像这样nmap
完成:ip route
nmap -sP $(ip route | grep kernel | awk '{print $1}')
在哪里$(a command line)
让你使用[标准]输出shell 上下文中的命令行,通过以下更简单的例子进行解释,
myusername=$(whoami)
可以通过
echo $myusername
一个简单的整数计算器是用双括号创建的,如下所示,
$ 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