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

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

3
วิธีการส่งออกตัวแปรสำหรับใช้กับ sudo
บน Slackware การใช้sbopkgอนุญาตให้สร้างแพ็คเกจจากซอร์ส Repos ไม่ใหญ่เท่า Debian แต่ก็ดี ซอฟต์แวร์บางตัวสามารถใช้ตัวแปรสภาพแวดล้อมเช่นบน VICE c64 emulator หากFFMPEGตั้งค่าตัวแปร เป็นyesมันจะเปิดใช้งานffmpegการบันทึกอีมูเลเตอร์ ฉันพยายามใช้ $ export FFMPEG=yes; sudo sbopkg -B -i vice แต่ffmpegถูกปิดใช้งาน แต่ฉันต้องใช้ $ su - $ export FFMPEG=yes $ sbopkg -B -i vice ซึ่งใช้งานได้ วิธีการใช้ตัวแปรสภาพแวดล้อมด้วยsudo?

5
จะแสดงค่าปัจจุบันของตัวแปรสภาพแวดล้อมได้อย่างไร
เมื่อฉันตรวจสอบสภาพแวดล้อมของระบบตัวแปรสภาพแวดล้อมจำนวนมากจะปรากฏขึ้น ฉันจะค้นหาตัวแปรเฉพาะได้อย่างไร หนังสือที่ฉันกำลังอ่านพูดว่า: บางครั้งจำนวนของตัวแปรในสภาพแวดล้อมของคุณมีขนาดใหญ่ขึ้นมากจนคุณไม่ต้องการเห็นค่าทั้งหมดที่ปรากฏเมื่อคุณสนใจเพียงตัวเดียว หากเป็นกรณีนี้คุณสามารถใช้echoคำสั่งเพื่อแสดงค่าปัจจุบันของตัวแปรสภาพแวดล้อม ฉันจะทำสิ่งนี้ใน terminal Linux ได้อย่างไร

1
ทำไมการส่งเสียงเป็นกลุ่มใน EDITOR ใน zsh จึงปิดการใช้งานแป้นพิมพ์ลัด?
.zshrcหน้าตาของฉันเป็นแบบนี้: export EDITOR="/usr/bin/vim" ตอนนี้เมื่อฉันเปิดเทอร์มินัลและป้อนแป้นพิมพ์ลัดctrlaเพื่อไปที่จุดเริ่มต้นของบรรทัดมันไม่ทำงาน แต่สตริง^A(หรือสตริงอื่น ๆ ขึ้นอยู่กับทางลัดที่ฉันป้อน) เข้าสู่เทอร์มินัล: emlai:~ % ^A การลบคำexportออกจาก.zshrcทำให้แป้นพิมพ์ลัดทำงานได้อย่างถูกต้อง: EDITOR="/usr/bin/vim" การส่งออกEDITORเป็นอย่างอื่นvimทำให้แป้นพิมพ์ลัดทำงานเช่นกัน: export EDITOR="/usr/bin/nano" ทำไมสิ่งนี้ถึงเกิดขึ้น ฉันทดสอบสิ่งนี้ด้วยbashเช่นกันและแป้นพิมพ์ลัดจะทำงานอย่างถูกต้องในทุกกรณีที่นั่น

4
ทำไม $ RANDOM ถึงไม่รวมอยู่ในผลลัพธ์ของ 'env'
ฉันรู้ว่าenvเป็นคำสั่งเชลล์มันสามารถใช้ในการพิมพ์รายการของตัวแปรสภาพแวดล้อมปัจจุบัน และเท่าที่ฉันเข้าใจRANDOMก็เป็นตัวแปรสภาพแวดล้อม ดังนั้นทำไมเมื่อฉันเปิดใช้งานenvบน Linux ผลลัพธ์ไม่รวมRANDOM?

3
รับตัวแปรสภาพแวดล้อมของผู้ใช้รายอื่น [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน6 ปีที่ผ่านมา มีวิธีที่ฉันเห็นตัวแปรสภาพแวดล้อมของผู้ใช้รายอื่นหรือไม่? ฉันต้องการทำสิ่งนี้ในฐานะรูทดังนั้นการอนุญาตจะไม่เป็นปัญหาฉันเดาได้ สำหรับผู้ใช้เองฉันใช้echo $PATHหรือset | grep PATH(หรือsetเมื่อฉันจำชื่อตัวแปรไม่ได้) คำแนะนำที่คล้ายกันสำหรับผู้ใช้รายอื่นคืออะไร สำหรับสิ่งที่คุ้มค่าฉันอยู่ใน Ubuntu Server 13.04

5
ส่งออกตัวแปร env เพื่อให้พร้อมใช้งานที่เชลล์ย่อยทั้งหมดและสามารถแก้ไขได้หรือไม่
สมมติว่าฉันมี export MY_VAR=0 ใน~/.bashrc. ฉันมีขั้วคำพังเพยเปิดและในสถานีนี้เปลี่ยนแปลงฉันมูลค่าให้กับ$MY_VAR 200ดังนั้นถ้าฉันทำ echo $MY_VAR ในสถานีนี้200จะปรากฏขึ้น ตอนนี้ฉันเปิดแท็บอื่นในเทอร์มินอล gnome และทำ echo $MY_VAR ... และแทนผมมี2000 ฉันควรทำอย่างไรเพื่อยืนยันค่า 200 เมื่อเทอร์มินัลแก้ไขตัวแปรสภาพแวดล้อมทำให้การแก้ไขนี้ (การตั้งค่าเป็น 200) พร้อมใช้งานสำหรับเชลล์ย่อยที่ตามมาทั้งหมดและเช่นนั้น? เป็นไปได้ไหม

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

5
ป้องกันไคลเอ็นต์ SSH ที่ส่งผ่านตัวแปรสภาพแวดล้อม TERM ไปยังเซิร์ฟเวอร์หรือไม่
ฉันกำลังใช้งานFedora 18 gnome-terminalจากนั้นก็เริ่มtmuxmultiplexer เข้าไป หลังจากฉันเชื่อมต่อกับเซิร์ฟเวอร์CentOS 5 ผ่านsshคำสั่งฉันพบ: ls ผลลัพธ์ไม่มีสี tmux, screen, hexedit, htopทั้งหมดล้มเหลวในการเริ่มต้นด้วยข้อผิดพลาดเช่น:เทอร์มินัลเปิดล้มเหลว: ขาดหายไปหรือเทอร์มินัลไม่เหมาะสม: หน้าจอ 256C ดูเหมือนว่าsshจะส่งผ่านตัวแปรสภาพแวดล้อม $ TERM ไปยังเซิร์ฟเวอร์ แต่ฉันไม่พบใน/etc/ssh/ssh_configไฟล์ Fedora 18 แม้ว่าฉันสามารถเปลี่ยนตัวแปร $ TERM ด้วยตนเองบนเซิร์ฟเวอร์ทุกครั้งที่ฉันเชื่อมต่อ แต่จะเกิดขึ้นอีกครั้ง ดังนั้นวิธีการป้องกันมันได้หรือไม่

1
มีความแตกต่างระหว่างการเพิ่มคู่ค่าชื่อให้กับคำสั่งและการใช้ env ใน bash หรือไม่?
สมมติว่าผมเรียกA=B commandและในenv A=B command bashมีสถานการณ์ใดบ้างที่อาจมีความแตกต่างระหว่างการขอร้องทั้งคู่?

2
JAVA_HOME ไม่ได้ตั้งค่าในสคริปต์เมื่อเรียกใช้โดยใช้ sudo
ฉันพยายามเรียกใช้สคริปต์การติดตั้งที่ต้องมีการติดตั้งจาวาและJAVA_HOMEตัวแปรสภาพแวดล้อมที่จะตั้งค่า ฉันได้ตั้งJAVA_HOMEใน/etc/profileและยังอยู่ในไฟล์ที่ผมเคยเรียกว่าในjava.sh /etc/profile.dฉันสามารถecho $JAVA_HOMEและได้รับคำตอบที่ถูกต้องและฉันสามารถทำได้sudo echo $JAVA_HOMEและได้คำตอบที่ถูกต้อง ในฉันพยายามที่จะวิ่งผมแทรกinstall.sh echo $JAVA_HOMEเมื่อฉันเรียกใช้สคริปต์นี้โดยไม่sudoเห็นไดเรกทอรี java; เมื่อฉันเรียกใช้สคริปต์ด้วยsudoมันจะว่างเปล่า ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น? ฉันใช้ CentOS

2
ความหมายของคำพูดเดี่ยวและคู่ในตัวแปรสภาพแวดล้อมคืออะไร?
ฉันกำหนดตัวแปรสภาพแวดล้อมบางอย่างใน. profile ของฉันเช่นนี้: MY_HOME="/home/my_user" แต่ดูเหมือนว่าตัวแปรจะไม่ประเมินเว้นแต่ว่าฉันจะตัดเครื่องหมายคำพูดออกแล้วทำการซอร์สไฟล์อีกครั้ง ฉันเชื่อว่าจำเป็นต้องมีเครื่องหมายอัญประกาศหากจะมีช่องว่างและใช้เครื่องหมายอัญประกาศเดี่ยวหากไม่ต้องการ Escape บางคนสามารถอธิบายความสำคัญของคำพูดเดี่ยวและคู่ในคำจำกัดความของตัวแปรได้หรือไม่? เห็บหน้าและเห็บหลังเหรอ?

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

3
ฉันจะแสดงรายการตัวแปรเชลล์ทั้งหมดได้อย่างไร
อ่านเกี่ยวกับคำถามนี้: ใน zsh ฉันจะแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดได้อย่างไร? ฉันสงสัยว่าฉันจะแสดงรายการตัวแปรเชลล์ทั้งหมดได้อย่างไร นอกจากนี้ความแตกต่างระหว่างตัวแปรเชลล์และตัวแปรสภาพแวดล้อมใช้กับเชลล์อื่นที่ไม่ใช่ zsh หรือไม่ ฉันสนใจ Bash และ Zsh เป็นหลัก แต่ก็เป็นการดีที่ได้ทราบว่าจะทำสิ่งนี้ได้อย่างไรในกระสุนหลักอื่น ๆ

2
การขยายตัวของตัวแปรหอยและผลกระทบของ glob และแยกกับมัน
จริงๆแล้วโพสต์นี้มีคำถามสองข้อแยกกัน แต่ฉันคิดว่าการรวมกลุ่มพวกเขาเข้าด้วยกันจะให้บริบทเพิ่มเติม ฉันผ่านคำถามนี้ไปแล้วเกี่ยวกับเครื่องหมายคำพูดเกี่ยวกับตัวแปรแต่ฉันไม่เข้าใจว่าการขยายตัวของตัวแปรหมายถึงอะไรในตอนแรก ดังนั้นคำถามแรกของฉันคือ: อะไรคือการขยายตัวของตัวแปรใน Unix / Linux พูด? ส่วนที่สองของคำถามของฉันเกี่ยวข้องกับข้อกำหนดต่อไปนี้: glob แยก ค่าข้างต้นหมายถึงอะไรและมีผลต่อการขยายตัวของตัวแปรอย่างไร คำตอบสำหรับคำถามเดิมกล่าวถึงต่อไปนี้: คิดว่าไม่มีเครื่องหมายคำพูด (ในบริบทรายการ) เป็นตัวดำเนินการแยก + glob ราวกับว่า echo $ test เป็น echo glob (แยก ("$ test")) ฉันไม่สามารถหาคำตอบใด ๆ ที่อยู่ตรงแนวคิดของglobbingและแยกแต่ใช้คำเหล่านั้นได้โดยตรงในการตอบคำถามอื่น ๆ เช่นนี้หนึ่งเมื่อเร็ว ๆ นี้

2
สภาพแวดล้อมที่เปลี่ยนแปลงของกระบวนการทำงาน
ว่ามันอาจจะเป็นไปได้ที่จะปรับเปลี่ยนตัวแปรบางอย่างในenvการขั้นตอนการทำงานอยู่แล้วเช่นผ่าน/proc/PID/environ?นั่น "แฟ้ม" read-onlyคือ จำเป็นต้องเปลี่ยนหรือยกเลิกการตั้งค่าตัวแปร DISPLAY ของงานแบ็ตช์ที่รันนานโดยไม่ฆ่ามัน

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