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

ตัวแปรสภาพแวดล้อมเป็นชุดของค่าที่ตั้งชื่อแบบไดนามิกที่สามารถส่งผลกระทบต่อวิธีการทำงานของกระบวนการจะทำงานบนคอมพิวเตอร์

5
การตั้งค่าตัวแปรสภาพแวดล้อมก่อนที่คำสั่งใน Bash จะไม่ทำงานสำหรับคำสั่งที่สองในไพพ์
ในเชลล์ที่กำหนดโดยปกติฉันจะตั้งค่าตัวแปรหรือตัวแปรแล้วเรียกใช้คำสั่ง เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้เกี่ยวกับแนวคิดของการเพิ่มคำนิยามตัวแปรให้กับคำสั่ง: FOO=bar somecommand someargs มันใช้งานได้ ... มันไม่ทำงานเมื่อคุณเปลี่ยนตัวแปร LC_ * (ซึ่งดูเหมือนว่าจะส่งผลกระทบต่อคำสั่ง แต่ไม่ใช่ข้อโต้แย้งตัวอย่างเช่น '[az]' ช่วงถ่าน) หรือเมื่อไพพ์เอาต์พุตไปยังคำสั่งอื่น: FOO=bar somecommand someargs | somecommand2 # somecommand2 is unaware of FOO ฉันสามารถเติม somecommand2 ด้วย "FOO = bar" ได้ด้วยซึ่งใช้งานได้ แต่เพิ่มการซ้ำซ้อนที่ไม่ต้องการและไม่ช่วยอาร์กิวเมนต์ที่ตีความขึ้นอยู่กับตัวแปร (เช่น '[az]') ดังนั้นวิธีที่ดีในการทำเช่นนี้ในบรรทัดเดียวคืออะไร? ฉันกำลังคิดบางอย่างตามคำสั่งของ: FOO=bar (somecommand someargs | somecommand2) # Doesn't actually work ฉันได้รับคำตอบที่ดีมากมาย! …

9
เคล็ดลับ LD_PRELOAD คืออะไร
ฉันเจอการอ้างอิงถึงมันเมื่อเร็ว ๆ นี้ในproggitและ (ณ ตอนนี้) มันไม่ได้อธิบาย ฉันสงสัยว่ามันอาจเป็นไปได้ แต่ฉันไม่รู้แน่นอน


18
ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมจาก Java ได้อย่างไร
ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมจาก Java ได้อย่างไร ProcessBuilderผมเห็นว่าผมสามารถทำเช่นนี้สำหรับกระบวนการย่อยใช้ ฉันมีหลายกระบวนการย่อยที่จะเริ่มต้นดังนั้นฉันจึงค่อนข้างจะปรับเปลี่ยนสภาพแวดล้อมของกระบวนการปัจจุบันและให้กระบวนการย่อยได้รับมรดก มีSystem.getenv(String)สำหรับการรับตัวแปรสภาพแวดล้อมเดียว ฉันยังสามารถได้รับของชุดที่สมบูรณ์ของตัวแปรสภาพแวดล้อมด้วยMap System.getenv()แต่การเรียกร้องput()สิ่งเหล่านี้Mapทำให้UnsupportedOperationExceptionดูเหมือนเป็นการอ่านอย่างเดียว System.setenv()และไม่มี ดังนั้นมีวิธีการตั้งค่าตัวแปรสภาพแวดล้อมในกระบวนการทำงานอยู่หรือไม่ ถ้าเป็นเช่นนั้นได้อย่างไร ถ้าไม่เหตุผลคืออะไร (เป็นเพราะนี่คือ Java และดังนั้นฉันไม่ควรทำสิ่งชั่วร้ายที่ไม่สามารถอธิบายสิ่งที่ล้าสมัยเช่นการสัมผัสกับสภาพแวดล้อมของฉันได้หรือไม่) และถ้าไม่คำแนะนำที่ดีสำหรับการจัดการการเปลี่ยนแปลงตัวแปรสภาพแวดล้อมที่ฉันจะต้องให้อาหาร กระบวนการย่อย?

4
วิธีเพิ่มพา ธ รวมเริ่มต้นสำหรับ GCC ใน Linux
ฉันต้องการ GCC จะรวมไฟล์จาก$HOME/includeที่นอกเหนือไปจากปกติรวมถึงไดเรกทอรี $LD_LIBRARY_PATHแต่มีไม่ดูเหมือนจะเป็นแบบอนาลอก ฉันรู้ว่าฉันสามารถเพิ่มไดเรกทอรีรวมที่บรรทัดคำสั่งเมื่อรวบรวม (หรือใน makefile) แต่ฉันชอบวิธีการที่เป็นสากลที่นี่เช่นในกรณีห้องสมุด

7
ฉันสามารถส่งออกตัวแปรไปยังสภาพแวดล้อมจากสคริปต์ทุบตีโดยไม่ต้องจัดหาได้หรือไม่
สมมติว่าฉันมีสคริปต์นี้ ส่งออกทุบตี : #! /usr/bin/env bash export VAR="HELLO, VARIABLE" เมื่อฉันรันสคริปต์และพยายามเข้าถึง$VARฉันจะไม่ได้รับค่าใด ๆ ! echo $VAR มีวิธีเข้าถึง$VARโดยเพียงแค่รันexport.bashโดยไม่ต้องจัดหามันหรือไม่

17
เหตุใด sudo จึงเปลี่ยนเส้นทาง
นี่คือPATHตัวแปรที่ไม่มี sudo: $ echo 'echo $PATH' | sh /opt/local/ruby/bin:/usr/bin:/bin นี่คือPATHตัวแปรที่มี sudo: $ echo 'echo $PATH' | sudo sh /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin เท่าที่ผมสามารถบอกได้sudoว่าควรจะปล่อยให้PATHใครแตะต้อง เกิดอะไรขึ้น? ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร (นี่คือ Ubuntu 8.04) UPDATE: เท่าที่ฉันเห็นไม่มีสคริปต์ใดที่เริ่มต้นเมื่อมีการเปลี่ยนแปลงPATHในทางใดทางหนึ่ง จากman sudo: เพื่อป้องกันการปลอมแปลงคำสั่ง sudo จะทำการตรวจสอบ ``. '' และ `` '' (ทั้งเครื่องหมายไดเรกทอรีปัจจุบัน) สุดท้ายเมื่อค้นหาคำสั่งในเส้นทางของผู้ใช้ (ถ้าหนึ่งหรือทั้งสองอยู่ในเส้นทาง) อย่างไรก็ตามโปรดทราบว่าตัวแปรสภาพแวดล้อม PATH ที่แท้จริงไม่ได้ถูกแก้ไขและถูกส่งผ่านไม่เปลี่ยนแปลงไปยังโปรแกรมที่ sudo ดำเนินการ

7
ฉันจะพิมพ์รายการ“ Build Settings” ในโครงการ Xcode ได้อย่างไร
ชื่อสำรอง รายชื่อตัวแปรสร้าง Xcode พิมพ์รายการการตั้งค่า Xcode Build ตัวแปรสภาพแวดล้อมเสียงดังกราว รายการที่ยอมรับของตัวแปรสภาพแวดล้อม Xcode มีรายการตัวแปร Xcode Environment ของ Canonicalที่สามารถใช้ในBuild กฎและอื่น ๆ ได้หรือไม่?

11
วิธีที่แนะนำในการรับชื่อโฮสต์ใน Java
ข้อใดต่อไปนี้เป็นวิธีที่ดีที่สุดและพกพาได้มากที่สุดในการรับชื่อโฮสต์ของคอมพิวเตอร์ปัจจุบันใน Java Runtime.getRuntime().exec("hostname") VS InetAddress.getLocalHost().getHostName()

14
ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมที่ crontab จะใช้ได้อย่างไร
ฉันมี crontab ทำงานทุกชั่วโมง ผู้ใช้ที่ใช้งานนั้นมีสภาพแวดล้อมที่หลากหลายในการ.bash_profileทำงานเมื่อผู้ใช้เรียกใช้งานจากเทอร์มินัลอย่างไรก็ตามเห็นได้ชัดว่าสิ่งเหล่านี้ไม่ได้รับโดย crontab เมื่อทำงาน ฉันลองตั้งค่า.profileแล้ว.bashrcแต่พวกเขายังดูเหมือนจะไม่ไปรับ ไม่มีใครรู้ว่าฉันสามารถวาง vars สภาพแวดล้อมที่ crontab สามารถรับได้หรือไม่

6
javac ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก, โปรแกรมที่ทำงานได้หรือแบตช์ไฟล์ [ปิด]
ปิด. คำถามนี้เป็นคำถามที่ไม่สามารถทำซ้ำหรือเกิดจากความผิดพลาด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันพบข้อผิดพลาดขณะพยายามคอมไพล์โปรแกรม Java ฉันใช้ Windows (นี่เป็นปัญหาเฉพาะของ Windows) และฉันติดตั้ง JDK ล่าสุดแล้ว ฉันได้ลองวิธีแก้ปัญหาที่เกี่ยวข้องกับPATHตัวแปรแล้ว แต่ข้อผิดพลาดยังคงมีอยู่ เอาต์พุตคอนโซล: C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin C:\>javac Hello.java 'javac' is not recognized as an internal or external command, operable program or batch file.

6
เหตุใดคำสั่งระยะไกล SSH จึงได้รับตัวแปรสภาพแวดล้อมน้อยลงเมื่อทำงานด้วยตนเอง [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีคำสั่งที่ทำงานได้ดีถ้าฉัน ssh กับเครื่องและเรียกใช้ แต่ล้มเหลวเมื่อฉันพยายามเรียกใช้โดยใช้คำสั่ง ssh จากระยะไกลเช่น: ssh user@IP <command> การเปรียบเทียบผลลัพธ์ของ "env" โดยใช้ทั้งสองวิธีจะดำเนินการต่อในสภาพแวดล้อมที่แตกต่างกัน เมื่อฉันเข้าสู่ระบบด้วยตนเองและเรียกใช้ env ฉันจะได้รับตัวแปรสภาพแวดล้อมมากขึ้นเมื่อฉันเรียกใช้: ssh user@IP "env" มีความคิดอะไรบ้าง

14
วิธีการตั้งค่าตัวแปรสภาพแวดล้อมในเจนกินส์?
ฉันต้องการที่จะทำสิ่งที่ชอบ: AOEU=$(echo aoeu) AOEU=aoeuและมีชุดเจนกินส์ ตัวแปรของสภาพแวดล้อมในส่วนเจนกินส์ไม่ได้ทำ AOEU='$(echo aoeu)'แต่จะกำหนด ฉันจะทำให้เจนกินส์ประเมินค่าคำสั่งเชลล์และกำหนดผลลัพธ์ให้กับตัวแปรสภาพแวดล้อมได้อย่างไร ในที่สุดฉันต้องการที่จะสามารถกำหนดตัวดำเนินการของงานให้กับตัวแปรสภาพแวดล้อมที่สามารถส่งผ่านไปยังหรือใช้งานโดยสคริปต์อื่น ๆ

10
วิธีการตั้งค่าตัวแปรสภาพแวดล้อม LD_LIBRARY_PATH ใน linux
ฉันได้ดำเนินการคำสั่งแรก: export LD_LIBRARY_PATH=/usr/local/lib จากนั้นฉันได้เปิด.bash_profileไฟล์: vi ~/.bash_profile. ในไฟล์นี้ฉันใส่: LD_LIBRARY_PATH=/usr/local/lib export LD_LIBRARY_PATH จากนั้นหากเทอร์มินัลปิดและรีสตาร์ทการพิมพ์echo $LD_LIBRARY_PATHจะไม่แสดงผลใด ๆ วิธีการตั้งค่าเส้นทางอย่างถาวร?

6
การตั้งค่าตัวแปรสภาพแวดล้อมระบบจากไฟล์ batch Windows?
เป็นไปได้ไหมที่จะตั้งค่าตัวแปรสภาพแวดล้อมที่ระดับระบบจากพรอมต์คำสั่งใน Windows 7 (หรือแม้แต่ XP สำหรับเรื่องนั้น) ฉันกำลังเรียกใช้จากพรอมต์คำสั่งที่ยกระดับ เมื่อฉันใช้setคำสั่ง ( set name=value) ตัวแปรสภาพแวดล้อมดูเหมือนจะใช้ได้เฉพาะกับเซสชันของพรอมต์คำสั่งเท่านั้น

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