อะไรคือข้อแตกต่างระหว่าง `VAR = … 'และ` export VAR = …'?


11

ความแตกต่างในการทำคืออะไร

$ MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

เพื่อทำ

$ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

และมีผลข้างเคียงของการทำอย่างใดอย่างหนึ่งในการเชื่อมต่อ SSH หรือไม่

คำตอบ:


10

อันที่หนึ่งตั้งค่าให้กับตัวแปร ตัวอย่างเช่นคุณสามารถทำได้

echo $MAVEN_OPTS

และให้มันคืนค่า แต่ถ้าคุณจะออกมันนอกเปลือกของคุณคุณจะได้สตริงคืนเปล่า

exportในมา

การส่งออกเป็นคำสั่งไปยังเชลล์ มันบอกเชลล์เพื่อให้ตัวแปรสภาพแวดล้อมนี้สามารถใช้ได้กับโปรแกรมอื่น ๆ หากไม่มีการเอ็กซ์พอร์ตจะสามารถใช้ได้เฉพาะภายในเชลล์เท่านั้น

หากคุณต้องการตัวแปรจะสามารถใช้ได้อย่างถาวร SSH อ่าน~/.ssh/environment, ssh2อ่าน/etc/environmentและ~/.ssh2/environmentและเพิ่มเส้นของรูปแบบ VARNAME ค่า = ต่อสิ่งแวดล้อม จากหน้าคนssh


แม้ว่าฉันจะส่งออกภายในการเชื่อมต่อ SSH และการยกเลิกการเชื่อมต่อตัวแปรนั้นจะไม่สามารถใช้ได้กับการเชื่อมต่อที่ตามมา ฉันจะทำให้มันถาวรได้อย่างไร
Pomario

แน่นอนมันไม่ได้ :) @pomario เพิ่มใน ssh และ ssh2 วิธีการเพิ่ม envs!
Rinzwind

ไม่รอ! :) สิ่งที่ฉันหมายถึงคือฉันเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ SSH และฉันต้องการเพิ่มตัวแปรสภาพแวดล้อมที่สามารถเข้าถึงได้จากเว็บอินเตอร์เฟส Jenkins มีวิธีใดในการบรรลุเป้าหมายนี้
Pomario

7
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

MAVEN_OPTSชุดตัวแปรเปลือกที่มีชื่อว่า อาจตามด้วยexport MAVEN_OPTSคำสั่งเพื่อให้ตัวแปรนี้พร้อมใช้งานเป็นตัวแปรสภาพแวดล้อมสำหรับโปรแกรมลูกหรือคำสั่งเชลล์ที่ใช้เช่นjava $MAVEN_OPTS ...

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

MAVEN_OPTSตั้งค่าตัวแปรสภาพแวดล้อมที่มีชื่อว่า ตัวแปรสภาพแวดล้อมนี้ยังมีให้กับโปรแกรมลูก

ไม่มีผลข้างเคียงยกเว้นว่ามีการปรับขีด จำกัด หน่วยความจำบางอย่างสำหรับmaven(ระบบการสร้าง iirc)


สาปมัน Lekensteyn นั่นเป็นครั้งที่ 4 ในวันนี้ ไปทำอย่างอื่น! >: D
Rinzwind

@Rinzwind ทำเช่นนั้นใน #bumblebee บน Freenode IRC: P
Lekensteyn

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