4

以下 2 行是否完全等效?如果不是,有什么区别?我已经看到很多 shell 脚本都使用数字 1,只是想知道与数字 2 相比它能给你带来什么。

  1. typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
  2. TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
4

2 回答 2

4

typeset将创建一个局部变量(一个不会“泄漏”的变量)。这在函数中很有用,但我也看到它在 shell 脚本的顶层使用。

a=0
function x {
    typeset a=1
}
x
echo $a
function y {
    a=2
}
y
echo $a

将打印

0
2

您还可以typeset用来创建数组和整数。

[编辑]添加function关键字,因为某些 shell 需要它。如果它冒犯了您的外壳,请将其删除,但它应该适用于大多数版本。

于 2009-06-22T15:38:11.047 回答
0

since shell scripting is a loosely typed language (in which variables wont have a datytype) we can use typeset to set a particular variable to take similar datatype of values only.

于 2009-12-15T13:04:35.293 回答