چگونه متغیرهای محیط را اضافه کنم؟


به جواب پذیرفته شده بروید




من در حال اجرا اوبونتو 11.04. من از ترمینال برای شروع جلسه bash استفاده می کنم و می خواهم یک متغیر محیط اضافه کنم:

 [email protected]:~$ env THEVAR=/example
 

اما کار نمی کند. این نشان می دهد تمام متغیرهای با THEVAR بودن یکی از آخرین، اما تماس دیگر به env نشان نمی دهد THEVAR anymore- env | grep THEVAR بازده هیچ چیز.

به طور مشابه ، اسکریپت هایی با صادرات ( export THEVAR=/example ) یا سایر تکالیف های متغیر ( THEVAR=/example ) متغیر محیط را اضافه نمی کنند.

من می دانم که کار اشتباهی انجام داده ام ، می دانم که این باید یک چیز ساده باشد ، اما من نمی توانم چیزی را پیدا کنم.

به روز رسانی: معنای واقعی سوال من این بود: https://stackoverflow.com/questions/496702/can-a-shell-script-set-en Environment-variables- of-the- calling-shell

(به هر حال من بیشترین رأی داده شده را انتخاب خواهم کرد و عنوان ویرایش شده را رها می کنم - این چیزی نبود که از من می پرسید)

env برنامه ای را در یک محیط اصلاح شده اجرا می کند ، سپس همه تغییرات را رد می کند.


400









6 :تعداد پاسخها


برای تنظیم متغیر فقط برای پوسته فعلی:

 VARNAME="my value"
 

برای تنظیم آن برای پوسته فعلی و تمام مراحل از پوسته فعلی شروع شده است:

 export VARNAME="my value"      # shorter, less portable version
 

برای تنظیم دائمی آن برای تمام جلسات bash در آینده ، چنین خطی را به .bashrc پرونده خود در $HOME فهرست خود اضافه کنید .

برای تنظیم آن به طور دائم ، و سیستم گسترده (کلیه کاربران ، کلیه فرایندها) متغیر تنظیم شده را در / etc / محیط اضافه کنید:

 sudo -H gedit /etc/environment
 

این پرونده فقط تکالیف متغیر مانند:

 VARNAME="my value"
 

در export اینجا از کلمه کلیدی استفاده نکنید .

شما باید از کاربر فعلی خارج شوید و دوباره وارد سیستم شوید تا تغییرات متغیرهای محیط اتفاق بیفتد.


626



برای تنظیم یک بار متغیر محیط ، از export دستور در سریع و نه در اسکریپت پوسته استفاده کنید:

 $ export THEVAR=/example
 

متغیر برای بقیه جلسه پوسته یا تا زمان عدم تنظیم تنظیم می شود.

برای تنظیم متغیر محیط در هر زمان ، از export دستور موجود در .bashrc پرونده (یا پرونده اولیه اولیه مناسب برای پوسته خود) استفاده کنید.

برای تنظیم متغیر محیط از یک اسکریپت ، از export دستور موجود در اسکریپت و سپس source اسکریپت استفاده کنید. اگر اسکریپت را اجرا کنید ، دیگر کار نمی کند.

برای توضیح تفاوت بین منابع و اجرای این پاسخ را ببینید: https://superuser.com/questions/176783/what-is-the-difference-between-ex اجرing-a-bash-script-and-sourcing- a- bash-script / 176788 # 176788


30



برای اضافه کردن دائم یک متغیر محیط جدید در اوبونتو (فقط در 14.04 آزمایش شده) ، از مراحل زیر استفاده کنید:

  1. باز کردن ترمینال (با فشار دادن CtrlAltT)
  2. sudo -H gedit /etc/environment
  3. رمزعبور خود را تایپ کنید
  4. فایل متنی را که تازه باز کرده اید ویرایش کنید:
    به عنوان مثال اگر می خواهید اضافه کنید FOO=bar ، فقط FOO=bar در یک خط جدید بنویسید
  5. آن را ذخیره کنید
  6. پس از ذخیره ، دوباره وارد شوید و وارد شوید
  7. تغییرات مورد نیاز شما ایجاد شده است.

19



برای اینکه تغییرات بعد از اتمام فیلمنامه ادامه یابد ، باید از منبع source ./script.sh یا علامت کوتاه برای منبع استفاده کنید ، "" ، مانند . ./script.sh

Source دستورات موجود در اسکریپت را به گونه ای اجرا می کند که گویی آنها را تایپ کرده اید ... بنابراین برخی از جنبه های اسکریپت مانند خروج از سیستم تغییر می کند. از طریق تماس exit 0 ، جلسه پایانی / پوسته فعلی شما را خاتمه می دهد.


8



اگر کارها را از طریق اسکریپت انجام می دهید ، یک راه آسان برای تنظیم دائمی متغیر محیط زیر جمله زیر در اسکریپت شما قرار می گیرد ،

 if [[ ! -d "$MyVar" ]]; then 
    export MyVar="abc"
    echo 'export MyVar="abc"' >> ~/.bashrc
fi
 

اگر نیاز دارید عباراتی مانند pwd را ارزیابی کنید ، می توانید از این موارد استفاده کنید ، به عنوان مثال ،

 echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc
 

5



من می دانم که خیلی دیر است ، اما اگر می خواهید یک متغیر محیط برای همه کاربران اضافه شود (به عنوان مثال استفاده از JAVA) - می توانید موارد زیر را انجام دهید:

1) /etc/bash.bashrc با استفاده از نانو باز کنید (شما می توانید از هر ویرایشگر استفاده کنید ، من VIM را ترجیح نمی دهم زیرا بدترین حالت در مورد دوستی کاربر است - هیچ چیز شخصی نیست).

2) پیوست به پرونده:

export VAR=path export PATH=$PATH:/bin 3) (بهتر است اگر بتوانید جعبه را گزاف گویی کنید) - یا یک جلسه SSH جدید را باز کنید و با استفاده از دستور 'env' تأیید کنید.

اما اگر می خواهید هر کاربر یک تنظیم جداگانه برای این کار داشته باشد ، باید تغییری (رمزنگاری شده) ایجاد کنید تا .bashrc در زیر پرونده خود را ثبت کند ~/.bashrc (یا /home/$USER/ در سیستم های لینوکس تازه وارد هستید)


4



انتشارات مرتبط


چگونه می توان از متغیرها در یک دستور sed استفاده کرد؟

چگونه متغیرهای محیطی را تنظیم کنم؟

متغیر محیط PATH چیست و چگونه می توانم به آن اضافه کنم؟

متغیر محیطی در مقابل متغیر Shell ، چه تفاوتی دارد؟

چگونه متغیرهای محیط پایدار را برای ریشه تنظیم کنم؟

چگونه می توان مسیر یک برنامه را به متغیر محیط PATH اضافه کرد؟ [تکثیر]

متغیر محیط را از طریق اسکریپت به .bashrc اضافه کنید

چگونه متغیر محیط EDITOR $ خود را پیدا و تنظیم کنم؟

ارجاع متغیرهای محیط * در * / و غیره / محیط؟

چگونه می توان متغیر محیط را قبل از اجرای اسکریپت درون قلاب ها تنظیم کرد؟

[bash] سوال برچسب


چگونه می توان یک بسته واحد را با استفاده از apt-get آپدیت کرد؟

چگونه نسخه اوبونتو را که اجرا می کنم بررسی کنم؟ [تکثیر]

چگونه می توانم نسخه جدید اوبونتو را ارتقا دهم؟

چگونه می توانم فقط به روزرسانی های امنیتی را از خط فرمان نصب کنم؟

چگونه می توانم هنگام استفاده از PPA یا به روزرسانی لیست بسته های خود ، خطای 404 را برطرف کنم؟

"(CRON) اطلاعات (بدون MTA نصب شده است ، و خروجی را نادیده می گیرد)" خطا در syslog

چگونه HDD خارجی با مجله HFS + را در Ubuntu بدون دسترسی به سیستم عامل X بخوانیم و بنویسیم؟

چگونه کدک H.265 / HEVC را در لینوکس اوبونتو نصب کنیم؟

چگونه اندروید استودیو را به پرتاب اضافه کنیم؟

آیا بازی هایی وجود دارد که می تواند مردم را برای یادگیری دستورات ترمینال آموزش دهد؟ [بسته]