temp=$1
和 和有什么区别temp=1
?为什么需要美元符号?
例如:
#!/bin/bash
temp=$1
cell=$((($temp-32)*5/9))
echo $cell
答案1
美元符号触发参数扩展;1
是字符串"1"
,而$1
是第一个 shell 参数。
答案2
[除了什么鲁阿赫已经提到过】
您的脚本尝试将温度值从华氏温度转换为摄氏度。您可以使用名称保存文件,例如tocelsius.sh
.现在,您可以通过将值传递给脚本来转换任何给定的温度(以华氏度为单位):
bash tocelsius.sh 66
当您这样做时,您$1
将包含值 66。因此,您将获得相应的输出。
但是,当您编写 时temp=1
,变量temp
将始终采用固定值 1。不会考虑传递给脚本的任何参数(如上所示)。
总而言之,$xyz
指出价值变量xyz
. $1
, $2
, ... 是特殊情况,它指向从命令行传递的参数(如果有)。