题
下面两行完全等价吗?如果不是有什么区别?我见过很多 shell 脚本都使用数字 1,只是想知道它与数字 2 相比能提供什么。
typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
解决方案
typeset
将创建一个局部变量(不会“泄漏”的变量)。这在函数中很有用,但我也看到它在 shell 脚本的顶层使用。
a=0
function x {
typeset a=1
}
x
echo $a
function y {
a=2
}
y
echo $a
将打印
0
2
您还可以使用 typeset
创建数组和整数。
[编辑] 添加 function
关键字,因为某些 shell 需要它。如果它冒犯了您的 shell,请将其删除,但它应该适用于大多数版本。
其他提示
由于 shell 脚本是一种松散类型语言(其中变量没有数据类型),我们可以使用排版来设置特定变量以仅采用类似数据类型的值。
不隶属于 StackOverflow