วิธีตั้งค่าตัวแปร env หลายตัวสำหรับคำสั่ง bash


109

ฉันควรตั้งค่าตัวแปร EC2_HOME และ JAVA_HOME ก่อนที่จะรันคำสั่ง (ec2-description-ภูมิภาค)

ฉันจะทำอย่างไรในครั้งเดียว

คำตอบ:


165

คุณสามารถตั้งค่า vars แบบครั้งเดียวสำหรับคำสั่งเดียวโดยวางไว้บนบรรทัดคำสั่งก่อนคำสั่ง:

$ EC2_HOME=/path/to/dir JAVA_HOME=/other/path ec2-describe-regions

หรือคุณสามารถส่งออกในสภาพแวดล้อมซึ่งในกรณีนี้จะถูกตั้งค่าสำหรับคำสั่งในอนาคตทั้งหมด:

$ export EC2_HOME=/path/to/dir
$ export JAVA_HOME=/other/path
$ ec2-describe-regions

7
โปรดทราบว่าแม้ว่าจะดูผิดปกติ แต่คุณก็สามารถเขียนexport EC2_HOME=/path JAVA_HOME=/pathได้เช่นกัน
William Pursell

4
ตัวเลือกครั้งเดียวมีประโยชน์มากในสคริปต์ หมายเหตุสำหรับทุกคนที่ต้องการดำเนินการคำสั่งในฐานะรูทหรือผู้ใช้รายอื่นตัวแปรควรมาหลังจาก sudo หรือผู้ใช้ ตัวอย่างเช่นsudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev

มีการ จำกัด จำนวนตัวแปรที่คุณสามารถจัดหาผ่านการสั่งจ่ายล่วงหน้าหรือไม่?
Sam Thomas

ขีดจำกัดความยาวบรรทัดคำสั่งสูงสุดซึ่งค่อนข้างใหญ่ใน linux
Chris Dodd

2

เช่นเดียวกับระบบ * nix อื่น ๆ คุณสามารถเพิ่มฟังก์ชันดังต่อไปนี้ในไฟล์. bashrc ของคุณภายใต้ไดเร็กทอรี HOME ของคุณ

function startec2(){
    EC2_HOME=/path/to/dir
    JAVA_HOME=/other/path 
    ec2-describe-regions
}

ตอนนี้คุณสามารถเริ่มโปรแกรมของคุณโดยคำสั่งต่อไปนี้:

startec2

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