Linux: yerel değişkenler için set komutu


9

Yerel / ortam değişkenleri ve ihracat / set komutları anlamaya çalışıyorum.

$ set FILEM="razrax"
$ echo $FILEM

$ FILEN="test"
$ echo $FILEN
test

Lütfen neden echo $FILEMboş dize döndürdüğünü açıklayın

Yanıtlar:


21

Sen karıştırıyorsun bashile csh.

In bashherhangi Bourne benzeri kabuk, olduğu gibi setkomut olan set seçenekleri (kabuk yapılandırma ayarları gibi -f, -C, -o noclobber...) ve konumsal parametreler ( $1, $2...).

set FILEM="razrax"

Kümeler $1için FILEM=razrax.

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

Bourne benzeri kabuklarda değişken atamanın sözdizimi:

VAR=value

(her iki tarafında boşluk bırakılmaz =).

kshBourne benzeri diğer mermiler de (mksh, pdksh, zsh) aynı zamanda dizi değişkenleri de atayabilir set:

set -A array value1 value2

zsh, bash, yashVe daha yeni sürümleri kshbu sözdizimi yerine kullanılması:

array=(value1 value2)

Buna karşılık, sözdiziminde cshveya tcshsözdizimi:

set VAR = value
set array = (value1 value2)

( =isteğe bağlı boşluklar ).

İç rc/ eskabuklar:

VAR = value
array = (value1 value2)

( =isteğe bağlı boşluklar ).


Güzel cevap için teşekkürler. Ben anlamadım tek şey benweet seçenekleri ve yerel değişkenler "set seçenekleri ayarlama komutu" ne fark nedir?
iJava

@iJava, seçeneği set -Cayarlar -C(ile aynı set -o noclobber). set fooatar fooiçin $1(ve $#(1 olduğu $2, $3önceden ayarlanmış ise sertleşmemiş olan)). Ayrıntılar için kabuğunuzun kılavuzuna bakın.
Stéphane Chazelas

1
Ne seçenekleri olduğunu anlamıyorum. Main (String [] args) gibi programlara gönderilen bu seçenekler var mı? Ya da ne? Nerede kullanılırlar?
iJava

1
@iJava, kabuğun davranışını etkileyen ayarlardır. Yine, KKO
Stéphane Chazelas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.