shell 编程 temp=$1 与 temp=1

shell 编程 temp=$1 与 temp=1

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, ... 是特殊情况,它指向从命令行传递的参数(如果有)。

相关内容