คำถามติดแท็ก environment-variables

ตัวแปรสภาพแวดล้อมเป็นตัวแปรทั่วทั้งระบบซึ่งใช้ค่าเดียวกัน ตัวแปรเหล่านี้มักจะถูกวิเคราะห์คำโดยเชลล์เมื่อเรียกใช้งานคำสั่งและถูกขยายเป็นตัวแปรที่เหมาะสม ตัวอย่างเช่นสิ่งนี้อนุญาตให้ผู้ใช้ย้ายตำแหน่งไฟล์โดยไม่จำเป็นต้องอัปเดตพา ธ แบบฮาร์ดโค้ดในสคริปต์ (พวกเขาเพียงแค่ต้องอัพเดตตัวแปรสภาพแวดล้อม)

2
ZSH เทียบเท่ากับ $ PROMPT_COMMAND ของ BASH คืออะไร
BASH สนับสนุน$PROMPT_COMMANDตัวแปรสภาพแวดล้อมที่กำหนดคำสั่งที่จะดำเนินการก่อนที่จะมีการโต้ตอบระดับแรก ฉันกำลังมองหา ZSH ที่เท่ากัน เอกสารบอกว่ามีฟังก์ชั่นที่precmdฉันสามารถนิยามได้ว่า; อย่างไรก็ตามฉันไม่ทราบวิธีการกำหนดจากตัวแปรสภาพแวดล้อม ฉันได้พิจารณาผ่านตัวแปรสภาพแวดล้อมที่จะทำให้ ZSH อ่านไฟล์ที่มีคำจำกัดความของฟังก์ชั่นนั้น แต่ ZSH ดูเหมือนจะไม่สนับสนุนสิ่งต่าง ๆ : มันอ่านเฉพาะไฟล์ทั่วโลกแล้วต่อไฟล์ผู้ใช้ ฉันสามารถแทนที่พวกเขา แต่ฉันไม่สามารถเพิ่มพวกเขาโดยไม่ต้องแก้ไขไฟล์ซึ่งฉันไม่สามารถทำได้ ดังนั้นฉันจะกำหนด hook pre-prompt ใน ZSH ผ่านตัวแปรสภาพแวดล้อมเช่นเดียวกับที่ฉันใช้$PROMPT_COMMANDใน BASH ได้อย่างไร

3
ปลอดภัยหรือไม่ในการจัดเก็บรหัสผ่านที่สำคัญในตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์
ฉันมีกลุ่มของเซิร์ฟเวอร์แต่ละไฟล์ที่มีการกำหนดค่าที่ปัจจุบันมีรหัสผ่านข้อความธรรมดาสำหรับระบบที่สำคัญภารกิจสำคัญ (คิวข้อความที่เก็บข้อมูลและบริการอื่น ๆ ) บางคนย้ายรหัสผ่านที่สำคัญออกจากไฟล์การกำหนดค่าลงในตัวแปรสภาพแวดล้อมของบัญชีผู้ใช้ที่ดำเนินการเซิร์ฟเวอร์ ด้วยวิธีนี้ไฟล์การกำหนดค่าสามารถถูกกำหนดให้ควบคุมเวอร์ชันและผู้ดูแลระบบต้องสร้างตัวแปรสภาพแวดล้อมที่เหมาะสมเมื่อตั้งค่าระบบเซิร์ฟเวอร์เท่านั้น การเข้าถึงบัญชีที่เรียกใช้บริการเหล่านี้มีข้อ จำกัด อย่างมาก นี่เป็นวิธีที่ดีที่สุดในการหลีกเลี่ยงรหัสผ่านในไฟล์กำหนดค่าข้อความล้วนหรือมีวิธีที่ดีกว่านี้หรือไม่?

6
การเพิ่ม. exe ไปยังเส้นทางเริ่มต้นโดยไม่ต้องเพิ่มไดเรกทอรี
ตัวอย่างเช่นฉันต้องการเพิ่มแผ่นจดบันทึก ++ ลงใน PATH ของฉันอย่างไรก็ตามไดเรกทอรียังมีuninstall.exeไฟล์อื่น ๆ อีกหลายไฟล์ / ไฟล์ที่เรียกใช้งานได้และฉันไม่ต้องการให้ "มลพิษ" พา ธ ของฉัน ฉันจะเพิ่มได้notepad++.exeไหม

3
ฉันสามารถเปลี่ยนตัวแปรสภาพแวดล้อม PATH ใน Windows 7 โดยไม่ต้องเริ่มต้นใหม่ได้หรือไม่
อย่างไรก็ตามมีการเปลี่ยนแปลงตัวแปรสภาพแวดล้อม PATH (หรือตัวแปรทั่วไป) ใน Windows 7 Exterprise (64 บิต) และมีผลใน PowerShell หรือพรอมต์คำสั่ง ( cmd.exe) โดยไม่ต้องรีสตาร์ทหรือไม่ ฉันไม่สนใจที่จะเปิดเชลล์ / พรอมต์ใหม่อีกครั้ง แต่การรีสตาร์ทก็มากเกินไป ขณะนี้ฉันกำลังเปลี่ยนตัวแปรผ่านAdvanced Systems settings ->Environment Variables`

1
Windows 7 -% PATH เฉพาะผู้ใช้
ฉันต้องการตั้งค่าระบบสำหรับ Windows 7 ที่ผู้ใช้แต่ละคนมีไดเรกทอรีส่วนตัวใน% PATH% ฉันลองตั้งค่า% PATH% เป็น%HOMEDRIVE%%HOMEPATH%\Bin;%SystemRoot%\System32;[...]แต่มันใช้งานไม่ได้ สำหรับผู้ที่ไม่ได้ตระหนักถึงสิ่งที่ฉันพยายามจะทำมันเหมือนEXPORT PATH=~/binจะอยู่ใน * ระวัง มันสามารถอยู่บนพื้นฐานที่เฉพาะเจาะจงของผู้ใช้ถ้าจำเป็นต้องเป็น (และที่จริงจะชอบการตั้งค่าทั้งเครื่อง)

1
คุณจะตั้งค่าตัวแปรสภาพแวดล้อมสำหรับคำสั่งเดียวบน Windows ได้อย่างไร [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : การตั้งค่าและการใช้ตัวแปรภายในบรรทัดคำสั่งเดียวกันใน Windows cmd.exe (4 คำตอบ) ปิดให้บริการใน3 ปีที่ผ่านมา มีวิธีการตั้งค่าตัวแปรสภาพแวดล้อมสำหรับคำสั่งเดียวบน Windows เช่นเดียวENVVAR=abc commandกับ Unix หรือไม่? ตัวแปรที่กำหนดโดยsetคำสั่งบน Windows ดูเหมือนจะยังคงอยู่สำหรับคำสั่งต่อไปนี้ แต่นี่ไม่ใช่สิ่งที่ฉันต้องการ

7
เหตุใดบรรทัดคำสั่ง Windows 8 ของฉันจะไม่อัปเดตพา ธ
ฉันต้องการเพิ่มรายการใหม่ให้กับตัวแปร PATH ของฉัน นี่เป็นกิจกรรมทั่วไปสำหรับฉันในงานของฉัน แต่ฉันเพิ่งเริ่มใช้ Windows 8 ฉันคิดว่ากระบวนการนี้จะคล้ายกับ Windows 7, Vista, XP ... นี่คือลำดับเหตุการณ์ของฉัน: เปิดคุณสมบัติของระบบ (เริ่ม -> [ประเภท "แผงควบคุม"] -> แผงควบคุม \ ระบบและ Security \ System -> การตั้งค่าระบบขั้นสูง -> ตัวแปรสภาพแวดล้อม) เพิ่มพา ธ ใหม่ไปยังจุดเริ่มต้นของตัวแปร USER PATH ของฉัน (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;) เปิดพรอมต์คำสั่ง (Start -> [type "command …

1
ตัวแปรสภาพแวดล้อม HOSTNAME บน Linux
ในกล่อง Linux ของฉัน (เฉพาะ Gentoo Linux 2.6.31) ฉันสังเกตว่าตัวแปรสภาพแวดล้อม HOSTNAME นั้นมีอยู่ในเชลล์ แต่ไม่ได้อยู่ในสคริปต์ ตัวอย่างเช่น, $ echo $HOSTNAME ผลตอบแทน xxxxxxxx.com, แต่ $ ruby -e 'puts ENV["HOSTNAME"]' ผลตอบแทน nil ในอีกทางหนึ่งตัวอย่างเช่นตัวแปรสภาพแวดล้อมของ USER นั้นมีทั้งในเชลล์และในสคริปต์ ฉันสังเกตเห็นว่า USER ปรากฏในรายการตัวแปรสภาพแวดล้อมที่ปรากฏขึ้นเมื่อฉันพิมพ์ export กล่าวคือ declare -x USER="infogrind" แต่ HOSTNAME ไม่ ฉันสงสัยว่าปัญหานี้เกี่ยวข้องกับสิ่งนั้น คำถามของฉัน: 1) ฉันจะทำให้ HOSTNAME พร้อมใช้งานในสคริปต์ได้อย่างไรและ 2) เพื่อความเข้าใจที่ดีขึ้นของฉันตัวแปรนี้ถูกตั้งค่าไว้ที่ใดในตอนแรกและทำไมจึงไม่ "ส่งออก"

2
ผู้ใช้กับตัวแปรสภาพแวดล้อมของระบบ: ตัวแปรระบบแทนที่ตัวแปรผู้ใช้หรือไม่
ฉันมีสิทธิ์ในการยกระดับแล็ปท็อปของฉัน แต่ไม่ใช่สิทธิ์ของผู้ดูแลระบบ จำเป็นต้องมีสิทธิ์ผู้ดูแลระบบเพื่อแก้ไขตัวแปรสภาพแวดล้อมของระบบ ฉันคาดว่าถ้าฉันสร้างตัวแปรสภาพแวดล้อมของผู้ใช้ที่มีชื่อเดียวกันกับตัวแปรสภาพแวดล้อมของระบบตัวแปรผู้ใช้จะแทนที่ตัวแปรระบบ แต่สิ่งนี้ดูเหมือนจะไม่เป็นเช่นนั้น หลังจากเพิ่มตัวแปรผู้ใช้ชื่อเดียวกันกับตัวแปรระบบฉันเปิดหน้าต่าง cmd ใหม่และใช้คำสั่งechoเพื่อแสดงตัวแปร มันแสดงให้ฉันเห็นค่าของตัวแปรระบบแทนค่าของตัวแปรผู้ใช้ ฉันแค่ต้องการยืนยันว่านี่เป็นพฤติกรรมที่คาดหวังและเข้าใจเหตุผลที่อยู่เบื้องหลัง ฉันคาดว่าการตั้งค่าผู้ใช้ที่เฉพาะเจาะจงมากขึ้นเพื่อแทนที่ระบบหนึ่ง ฉันมี Windows 7

7
วิธีสคริปต์ที่ง่ายที่สุดในการตรวจสอบว่าตัวแปรเปลือกจะถูกส่งออกคืออะไร?
สำหรับบางเซสชั่นเชลล์ฉันต้องการพิมพ์แฟล็กคำเตือนหากไม่ได้ตั้งค่าและส่งออกตัวแปรเชลล์ มันค่อนข้างง่ายที่จะทำสิ่งนี้เพื่อพิมพ์ "ข้อผิดพลาด" ในพรอมต์หากSET_MEไม่ได้ตั้งค่าหรือเป็นโมฆะ test_var () { test -z "$1" && echo Error; } PS1='$(test_var "$SET_ME") \$ ' อย่างไรก็ตามสิ่งนี้ล้มเหลวในการตั้งค่าสถานะถ้าฉันตั้งค่าSET_MEโดยไม่ส่งออกซึ่งเป็นข้อผิดพลาดที่ฉันต้องการตรวจสอบ มีบางสิ่งที่คล้าย$(bash -c 'test -z "$SET_ME" && echo Error;')หรือส่งออกของ grepping exportมีการตรวจสอบง่าย ๆ ที่ฉันสามารถทำได้เพื่อทดสอบว่าSET_MEมีการส่งออกหรือไม่ โซลูชันที่ไม่ใช่ POSIX และ bash-only เป็นที่ยอมรับ

4
กำลังอัปเดตตัวแปรสภาพแวดล้อมเซสชันหน้าจอเพื่อแสดงการเข้าสู่ระบบแบบกราฟิกใหม่หรือไม่
ฉันใช้ linux และฉันต้องการทำงานบรรทัดคำสั่งทั้งหมดในเซสชันหน้าจอเดียวเพื่อให้ฉันสามารถเริ่มต้นการเข้าสู่ระบบแบบกราฟิกของฉันและทำเช่นนี้โดยไม่สูญเสียอาคารของฉัน อย่างไรก็ตามเมื่อฉันออกจากระบบและกลับสู่เซสชันกราฟิกของฉันสิ่งนี้จะเปลี่ยนแปลงตัวแปรสภาพแวดล้อมเซสชันทั้งหมดของฉันเช่นเซสชัน DBus ซึ่งหมายความว่าหลังจากเข้าสู่ระบบอีกครั้งเซสชันหน้าจอของฉันในขณะนี้มีตัวแปรสภาพแวดล้อมแบบเก่า (และผิด) ดังนั้นเมื่อฉันพยายามเริ่มโปรแกรมกราฟิกจากหน้าจอของฉันที่ดีที่สุดพวกเขาส่งเสียงเตือนว่าไม่สามารถเชื่อมต่อกับเซสชันบัสได้ ที่เลวร้ายที่สุดพวกเขาล้มเหลวในการเริ่มต้นอย่างสมบูรณ์ ดังนั้นสิ่งที่ฉันกำลังมองหาคือวิธีการปรับเปลี่ยนตัวแปรสภาพแวดล้อมในอินสแตนซ์ที่กำลังทำงานของหน้าจอเพื่อให้หน้าต่างหน้าจอที่สร้างขึ้นในภายหลังทั้งหมดจะสืบทอดตัวแปรสภาพแวดล้อมใหม่ มีวิธีทำเช่นนี้หรือไม่?

3
วิธีลบเส้นทางจากตัวแปร $ PATH ในปลา?
ฉันใช้ปลาเป็นเปลือกหอยของฉันใน Debian และเมื่อเร็ว ๆ นี้ (หลังจากอัปเกรดบางครั้ง) เมื่อใดก็ตามที่ฉันพยายามใช้คำสั่งให้สมบูรณ์ที่ฉันมี: set: No such file or directory set: Could not add component /usr/lib/x86_64-linux-gnu/libfm to PATH. set: No such file or directory ใช้สิ่งนี้: echo $PATH ให้สิ่งนี้กับฉัน: /usr/lib/x86_64-linux-gnu/libfm /usr/local/bin /usr/bin /bin /usr/local/games /usr/games ในระบบของฉันไม่มี/usr/lib/x86_64-linux-gnu/libfmดังนั้นฉันเข้าใจว่าทำไมปลาถึงบ่น แต่ฉันไม่สามารถหาวิธีลบเส้นทางนี้จาก$PATHตัวแปรของฉัน ไม่มีใครรู้ว่าฉันจะทำสิ่งนี้ได้อย่างไร

2
TEMP vs TMP ในตัวแปรสภาพแวดล้อม
ถูกต้องหรือไม่ที่จะมีตัวแปรสภาพแวดล้อมทั้งสองนี้คือ TEMP และ TMP หากฉันทำการเปลี่ยนแปลงอย่างใดอย่างหนึ่งฉันควรทำการเปลี่ยนแปลงอื่น ๆ อย่างเดียวกันหรือไม่ ตัวอย่างเช่นฉันติดตั้ง cygwin และทิศทางบอกให้ฉันเปลี่ยนตัวแปร PATH แต่ทั้ง TEMP และ TMP มีตัวแปรพา ธ ความแตกต่างระหว่างสองคืออะไร? ไม่แน่ใจว่าทำไมผู้คนถึงต้องการเห็นสิ่งนี้ แต่นี่คือค่าของพา ธ : พา ธ ใน TEMP: Shared \ Windows Files \ Microsoft Files \ Common C: \ Program Files \ Common Files \ Microsoft (x86) \ Common Shared \ Windows …

3
ตัวแปรสภาวะแวดล้อม LANG และ LANGUAGE ในระบบที่ใช้ Debian
ดูเหมือนว่าทั้งสองตัวแปรสภาพแวดล้อม LANG และ LANGUAGE จะถูกใช้โดยบางโปรแกรมเพื่อกำหนดภาษาส่วนต่อประสานผู้ใช้ ความหมายที่แน่นอนของตัวแปรเหล่านี้คืออะไรและฉันสามารถอ่านเกี่ยวกับการใช้งานที่ถูกต้องของพวกเขาได้ที่ไหน manpage for locale (1) กล่าวถึงตระกูล LC_ * ของตัวแปรสภาพแวดล้อมเท่านั้น นอกจากนี้ยังมีตัวแปร LC_ALL โดยทั่วไปอยู่ในตำแหน่งที่ไม่ได้อธิบายไว้เช่นกัน

1
ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมสำหรับแอป GUI ใน OS X Mavericks ได้อย่างไร
ฉันพยายามดิ้นรนเพื่อให้แอปทำงานใน OS X Mavericks ในที่สุดฉันก็สามารถทำให้มันรันได้โดยเจาะเข้าไปในชุด. app และรันเชลล์สคริปต์โดยตรง ดูเหมือนว่าจะต้องมีการตั้งค่า JAVA_HOME ดังนั้นฉันตั้งไว้ใน. โปรไฟล์ของฉันในเปลือกและทุกอย่างทำงานได้ดี อย่างไรก็ตามหากฉันต้องการเพียงคลิกที่ไอคอนใน Dock ก็จะไม่ทำงาน ฉันเดาว่านี่เป็นเพราะ JAVA_HOME ไม่ได้ถูกตั้งค่าไว้ทั่วโลก เนื่องจากฉันไม่ได้เรียกใช้แอปโดยตรงจากเชลล์ OS X จึงไม่ทราบว่า JAVA_HOME คืออะไร มันแค่ทำให้ดู ใน OS X เวอร์ชั่นก่อนหน้าดูเหมือนว่าตัวแปรสภาพแวดล้อมสามารถตั้งค่าสำหรับแอพ GUI ได้โดยเพียงแค่เพิ่มลงใน /etc/launchd.conf ไฟล์นี้ไม่มีอยู่ใน Mavericks ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมส่วนกลางที่จะใช้กับแอพ GUI ใน Mavericks ได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.