web-dev-qa-db-ja.com

Linux:ローカル変数のsetコマンド

ローカル/環境変数とエクスポート/設定コマンドを理解しようとしています。

$ set FILEM="razrax"
$ echo $FILEM

$ FILEN="test"
$ echo $FILEN
test

理由を説明してくださいecho $FILEMは空の文字列を返します

9
iJava

bashcshを混同しています。

Bourneのようなシェルのようにbashと同様に、 setsetオプションへのコマンドです(シェル構成設定-f-C-o noclobber...)や位置パラメータ($1$2...)など。

set FILEM="razrax"

$1FILEM=razraxに設定します。

$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax

Bourneのようなシェルでの変数割り当ての構文は次のとおりです。

VAR=value

=の両側にはスペースを入れないでください)。

kshと他のいくつかのBourneのようなシェル(mksh、pdksh、zsh)は、配列変数をsetで割り当てることもできます。

set -A array value1 value2

zshbashyashおよびkshの新しいバージョンでは、代わりに次の構文を使用します。

array=(value1 value2)

対照的に、cshまたはtcshの構文は次のとおりです。

set VAR = value
set array = (value1 value2)

=の前後のスペースは省略可能)。

rc/esシェル:

VAR = value
array = (value1 value2)

=の前後のスペースは省略可能)。

21