4

次の 2 行は完全に同等ですか? そうでない場合、違いは何ですか?多くのシェル スクリプトが番号 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ローカル変数(「リーク」しない変数)を作成します。これは関数で役立ちますが、シェル スクリプトのトップ レベルで使用されていることも確認しました。

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

印刷します

0
2

typesetを使用して、配列と整数を作成することもできます。

[編集]function一部のシェルで必要なため、キーワードを追加しました。シェルに問題がある場合は削除しますが、ほとんどのバージョンで動作するはずです。

于 2009-06-22T15:38:11.047 に答える
0

シェル スクリプトは緩く型付けされた言語 (変数はデータ型を持たない) であるため、typeset を使用して特定の変数を設定し、同様のデータ型の値のみを取得できます。

于 2009-12-15T13:04:35.293 に答える