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

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



2
ตัวแปร HOME ไม่ได้ถูกตั้งค่า
ฉันมีเซิร์ฟเวอร์สองเครื่องพวกเขาเหมือนกัน (ฉันเชื่อ) เซิร์ฟเวอร์ที่ใช้งานจริงและเซิร์ฟเวอร์เสมือน และฉันมีสคริปต์พุ่งพรวดใน/etc/init/โฟลเดอร์ description "Discoure process" setuid deploy setgid deploy respawn respawn limit 3 30 start on runlevel [2345] stop on runlevel [06] script exec /bin/bash <<'EOT' echo \"$HOME/.rbenv\" cd /home/deploy/discourse/current bundle exec bluepill load config/discourse.pill --no-privileged --base-dir tmp/bluepill --logfile log/bluepill.log EOT end script บนเซิร์ฟเวอร์ staging ใช้งานได้ดี แต่เมื่อฉันเรียกใช้สคริปต์บนเซิร์ฟเวอร์ที่ใช้งานจริงตัวแปร HOME …

3
การกำหนดเฉพาะส่วนของสตริงให้กับตัวแปรใน bash
ฉันได้รับ filepath แบบสัมบูรณ์จากผู้ใช้และฉันต้องการสร้างตัวแปรที่จะเป็นสตริงที่จะไม่รวมเฉพาะสององค์ประกอบแรกของเส้นทางของไฟล์ แต่ไม่มีการพิมพ์หรืออะไรก็ตาม ตัวอย่างเช่นพา ธ สัมบูรณ์อาจเป็น: /home/myusername/folder1/folder2/folder3 และมันถูกบันทึกใน "target_path" และฉันต้องการให้ "mydir" เป็นเพียง: /folder1/folder2/folder3 ฉันลองใช้คำสั่ง cut ด้วยวิธีที่ต่างกัน แต่ไม่ประสบความสำเร็จ

2
วิธีการตั้งค่าตัวแปรสภาพแวดล้อมอย่างเหมาะสม?
ฉันเปิด/etc/environmentและเพิ่มบรรทัดANDROID_SDK_HOME="/home/tom/android-sdk" แต่ฉันพยายามecho $ANDROID_SDK_HOMEแต่ไม่แสดงอะไรเลย ฉันมีJAVA_HOMEเหมือนกัน/etc/environmentแต่ใช้งานได้ โปรดช่วยฉันแก้ไขปัญหา ขอบคุณล่วงหน้า.

2
อะไรคือข้อแตกต่างระหว่าง `VAR = … 'และ` export VAR = …'?
ความแตกต่างในการทำคืออะไร $ MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m" เพื่อทำ $ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m" และมีผลข้างเคียงของการทำอย่างใดอย่างหนึ่งในการเชื่อมต่อ SSH หรือไม่

1
วิธีย้ายไดเร็กทอรีแคชผู้ใช้ [~ / .cache] ออกจากไดเร็กทอรี / home ไปยังพาร์ติชันอื่น
ไดเรกทอรี. แคชนั้นเต็มไปด้วยไฟล์ที่ระเหยได้และไม่จำเป็น ฉันต้องการย้ายไปยังพาร์ติชันที่เหมาะสมกว่าเช่นเร็วกว่าและไม่สำรองข้อมูล ฉันเชื่อว่าไฟล์ ~ / .pam_environment เหมาะสมกับสิ่งนี้ แต่ไม่แน่ใจว่าไฟล์นั้นดีที่สุดหรือมีการบันทึกไว้อย่างถูกต้องหรือทำงานอย่างถูกต้อง


1
วิธีเริ่ม / กำหนดค่า pulseaudio จากระยะไกลด้วย ssh
ฉันมีเครื่องระยะไกลซึ่งฉันสามารถ ssh บนเครื่องระยะไกลมีโปรแกรมที่ใช้พัลส์เสียงเพื่อรับสัญญาณจากไมโครโฟน USB ที่ต่อกับเครื่องระยะไกล การตั้งค่านี้ทำงานได้ดีเมื่อใช้งานในพื้นที่เช่นฉันสามารถรับสัญญาณจากเสียงชีพจรเมื่อเชื่อมต่อในเครื่อง กว่า ssh ฉันได้รับข้อผิดพลาด: ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused เมื่อฉันพยายามเปิด pavucontrol บนเครื่องระยะไกลผ่าน ssh -X ฉันได้รับข้อความ: การเชื่อมต่อกับ PulseAudio ล้มเหลว ... ในกรณีนี้อาจเป็นเพราะ PULSE_SERVER ในคุณสมบัติหน้าต่างหลักของ Environment / X11 หรือเซิร์ฟเวอร์เริ่มต้นใน client.conf ถูกกำหนดค่าไว้ไม่ถูกต้อง pulseaudio --start N: [pulseaudio] …

1
เหตุใดการแทนที่ตัวแปรสภาพแวดล้อม LANG จึงไม่เปลี่ยนภาษาสำหรับฉัน
ฉันพยายามเรียกใช้แอปพลิเคชันในภาษาอื่นเป็นสภาพแวดล้อมปัจจุบันของฉัน lsในการเริ่มต้นง่ายฉันอยากจะเปลี่ยนภาษาของ นี่คือสิ่งที่ฉันอ่านไปทั่วสถานที่ (ดูด้านล่างสำหรับคำถามที่เกี่ยวข้อง): ตั้งค่าLANGเป็นหนึ่งในสถานที่ที่รองรับเช่น: LANG=nl_NL.UTF-8 ls /nonexistent เพื่อให้มันแสดงเอาท์พุทดัตช์ (NL) อย่างไรก็ตามฉันยังได้รับผลภาษาอังกฤษ: $ LANG=nl_NL.UTF-8 ls -al /nonexistent ls: cannot access /nonexistent: No such file or directory สภาพแวดล้อมปัจจุบันของฉัน: $ locale LANG=en_GB.UTF-8 LANGUAGE=en_GB:en LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= เพื่อให้แน่ใจว่าฉันได้ตรวจสอบ: สถานที่ได้รับการสนับสนุน: $ grep nl_NL /usr/share/i18n/SUPPORTED nl_NL.UTF-8 …

1
พื้นหลังไม่เปลี่ยนแปลงโดยใช้ gsettings จาก cron
ฉันกำลังพยายามเปลี่ยนรูปพื้นหลังเป็นภาพสุ่มโดยใช้สคริปต์ที่แนะนำของ Indrajith Indraprastham ที่นี่: จะเปลี่ยนพื้นหลังเดสก์ท็อปจากบรรทัดคำสั่งใน Unity ได้อย่างไร เมื่อฉันเรียกใช้สคริปต์จากหน้าต่างเทอร์มินัลการเปลี่ยนแปลง bg ใช้ได้ แต่เมื่อมันทำงานจาก cron ฉันส่งข้อผิดพลาดนี้ทางไปรษณีย์: (กระบวนการ: 21901): dconf-WARNING **: ล้มเหลวในการส่งการเปลี่ยนแปลงไปยัง dconf: เกิดข้อผิดพลาดในบรรทัดคำสั่งที่วางไข่ 'dbus-launch --autolaunch = 00216c114dcf433c9bb9009985d607d6 --binary-syntax --close-stderr': กระบวนการเด็กออกจากรหัส 1 ฉันขอขอบคุณข้อเสนอแนะใด ๆ


1
จะตั้งค่า LD_LIBRARY_PATH อย่างถาวรได้อย่างไร
ฉันใช้ Ubuntu 16. ฉันต้องการใช้cfmidสำหรับโครงการของฉัน เมื่อฉันตั้งค่าLD_LIBRARY_PATHใน terminal ฉันจะได้รับผลลัพธ์ของcfmidห้องสมุด: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lclab/installed/boost/boost_1_65_0:/home/lclab/installed/rdkit/rdkit-Release_2016_03_1/lib:/home/lclab/installed/lp/lp_solve_5.5.2.5_dev_ux64 แต่เมื่อฉันปิดเซสชันเทอร์มินัลและเปิดใหม่ฉันต้องการเพิ่มLD_LIBRARY_PATHอีกครั้ง ฉันจะตั้งค่านี้อย่างถาวรได้อย่างไร

2
เหตุใดฉันจึงต้อง "ซอร์ส. โปรไฟล์" ในทุกเทอร์มินัลที่ฉันเปิด
เมื่อเราเปลี่ยนตัวแปรบางอย่างในในอูบุนตูแล้วเรารันคำสั่ง~/.profile source .profileจากนั้นการเปลี่ยนแปลงจะมีผลเฉพาะในเทอร์มินัลนี้ ถ้าเราเปิดเทอร์มินัลใหม่เราต้องดำเนินการคำสั่งsource .profileอีกครั้ง ดังนั้นดูเหมือนว่าเทอร์มินัลที่แตกต่างกันมีสภาพแวดล้อมของตัวเองแม้ว่าพวกเขาอาจเป็นผู้ใช้เดียวกัน อะไรคือข้อดีของการทำให้เครื่องทุกเครื่องมีเส้นทางสภาพแวดล้อมของตัวเอง? ดูเหมือนว่าจะดีกว่าถ้าเทอร์มินัลอื่นซึ่งเป็นของผู้ใช้รายเดียวกันใช้ตัวแปรสภาพแวดล้อมเดียวกัน

4
การเปลี่ยน / etc / environment ไม่ส่งผลต่อตัวแปรสภาพแวดล้อมของฉัน
ฉันพยายามที่จะติดตั้งระบบผู้เชี่ยวชาญออยเลอร์ต่อไปนี้คำแนะนำเหล่านี้ ในการเพิ่มตัวแปรสภาพแวดล้อมฉันแก้ไขของฉัน/etc/environmentให้เป็นดังนี้: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: /home/mohammad/Desktop/eye" EYE_HOME = "/home/mohammad/Desktop/eye" แต่เมื่อฉันใช้printenv PATHฉันไม่เห็นไดเรกทอรีใหม่ที่เพิ่มในเส้นทางของฉัน ฉันทำอะไรผิดที่นี่

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