सवाल मछली के खोल में केवल एक कमांड के लिए मैं पर्यावरण चर सेट कैसे कर सकता हूं?


बाश में, मैं कर सकता हूँ EDITOR=vim crontab -e। क्या मुझे मछली के खोल में समान प्रभाव मिल सकता है?


43
2017-07-27 01:25


मूल




जवाब:


begin; set -lx EDITOR vim; crontab -e; end

25
2017-07-27 01:58



क्या ऐसा करने का कोई आसान तरीका है? - Milovan Zogovic
विचित्र रूप से, यह मेरे लिए काम नहीं करता है। मैं एक रूबी स्क्रिप्ट बुला रहा हूं, और एनएनवी उस चर को नहीं उठाता है जिसे मैं सेटिंग कर रहा हूं: set -lx date '12/04/2012' - Duke
@ ड्यूक: यह मेरे लिए काम करता है। begin; set -lx date '12/04/2012'; ruby -e 'puts ENV["date"]'; end - Dennis Williamson
इस बीच मछली के एफएक्यू में इसका उत्तर दिया गया है: fishshell.com/docs/current/faq.html#faq-single-env - harm
और वह एफएक्यू क्या कहता है यह है: env SOME_VAR=1 command - BallpointBen


यह न देखें कि यह क्यों काम नहीं करना चाहिए: env EDITOR=vim crontab -e
वह पूरी तरह से खोल को छोड़ देता है।


65
2018-05-17 13:44



यह इतना आसान है। एकमात्र समस्या यह है कि खोल को छोड़कर किसी भी कस्टम मछली आदेशों को अस्वीकार कर दिया जाता है, जो शायद आपकी मांसपेशियों की स्मृति में बंद हो जाते हैं। - JohnMetta
मैंने देखा कि दस्तावेज़ों में भी, लेकिन फिर निम्नलिखित काम क्यों नहीं करते? env SOME_VAR=1 echo $SOME_VAR - lmsurprenant
कभी बुरा मत मानो, मुझे बस इसे देखना चाहिए था: stackoverflow.com/questions/10938483/... - lmsurprenant


वह है प्रलेखन

SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".

Env कमांड का प्रयोग करें।

env SOME_VAR=1 command

आप एक ब्लॉक में एक स्थानीय चर घोषित कर सकते हैं और जो खोल को बाईपास नहीं करेगा

begin
  set -lx SOME_VAR 1
  command
end

10
2018-03-02 15:59





की परिभाषा के आधार पर be समारोह, यह असफल हो सकता है

begin
  set -lx RAILS_ENV staging
  be rails r "p ENV['RAILS_ENV']"
end

इसे काम करने के लिए:

function be --description 'Runs bundle exec' --no-scope-shadowing
  bundle exec $argv
end

कृपया, स्पष्टीकरण देखें - नो-स्कोप-शेडिंग विकल्प

-एस या - नो-स्कोप-शेडिंग फ़ंक्शन को कॉलिंग फ़ंक्शंस के चरों तक पहुंचने की अनुमति देता है। आम तौर पर, फ़ंक्शन के अंदर कोई भी चर   कॉलिंग फ़ंक्शन से चर के समान नाम हैं   "छायांकित", और उनकी सामग्री कॉलिंग फ़ंक्शन से स्वतंत्र है।


2
2018-02-13 02:18