लिनक्स: स्थानीय चर के लिए सेट कमांड


9

मैं स्थानीय / पर्यावरण चर और निर्यात / सेट कमांड को समझने की कोशिश कर रहा हूं।

$ set FILEM="razrax"
$ echo $FILEM

$ FILEN="test"
$ echo $FILEN
test

कृपया बताएं कि echo $FILEMखाली स्ट्रिंग क्यों लौटाता है

जवाबों:


21

आप के bashसाथ भ्रमित कर रहे हैं csh

में bashमें की तरह किसी भी बॉर्न-जैसा शेल, setकरने के लिए आदेश है सेट विकल्प (खोल विन्यास सेटिंग्स की तरह -f, -C, -o noclobber...) और स्थितीय मानकों ( $1, $2...)।

set FILEM="razrax"

सेट $1करने के लिए FILEM=razrax

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

बॉर्न जैसे गोले में चर असाइनमेंट के लिए सिंटैक्स है:

VAR=value

(कोई स्थान दोनों तरफ से अनुमति नहीं है =)।

kshऔर कुछ अन्य बॉर्न जैसे गोले (mksh, pdksh, zsh) के साथ भी सरणी चर असाइन कर सकते हैं set:

set -A array value1 value2

zsh, bash, yashऔर के नए संस्करण kshउपयोग इस वाक्य रचना के बजाय:

array=(value1 value2)

इसके विपरीत, cshया में tcsh, वाक्यविन्यास है:

set VAR = value
set array = (value1 value2)

( =वैकल्पिक के आसपास रिक्त स्थान )।

में rc/ esगोले:

VAR = value
array = (value1 value2)

( =वैकल्पिक के आसपास रिक्त स्थान )।


अच्छे उत्तर के लिए धन्यवाद। केवल एक चीज जो मुझे समझ नहीं आ रही है कि अंतर विकल्प और स्थानीय चर "सेट करने के लिए विकल्प सेट करने के लिए कमांड" क्या है?
इजावा

@ जय, विकल्प (उसी के अनुसार ) set -Cसेट करता -Cहै set -o noclobber। (और , 1, ( , यदि पहले सेट हो तो) परेशान हैं) को set fooअसाइन करता fooहै । विवरण के लिए अपने शेल के मैनुअल की जाँच करें। $1$#$2$3
स्टीफन चेज़लस

1
मुझे समझ नहीं आ रहा है कि विकल्प क्या हैं। क्या ये विकल्प मुख्य (स्ट्रिंग [] args) जैसे कार्यक्रमों को भेजे जाते हैं? और क्या? वे कहाँ उपयोग किए जाते हैं?
इजावा

1
@ जयवा, वे सेटिंग्स हैं जो शेल के व्यवहार को प्रभावित करते हैं। फिर, RTFM
स्टीफन Chazelas
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.