5
แยกความแตกต่างระหว่างการรันและการซอร์สในสคริปต์เชลล์ bash หรือไม่?
ไม่ว่าฉันจะขออะไรจากที่นี่เป็นเรื่องแปลกแหกคอก / ไม่เป็นทางการ / มีความเสี่ยงหรือทักษะ Google-fu ของฉันไม่ได้ขึ้นอยู่กับว่า ... ในbashเชลล์สคริปต์มีวิธีใดที่จะบอกได้ง่ายว่าเชลล์สคริปต์นั้นมาจากแหล่งอื่นหรือไม่? กล่าวอีกนัยหนึ่งเป็นไปได้ไหมที่จะแยกแยะระหว่างพฤติกรรมสองอย่างต่อไปนี้? # from another shell script source myScript.sh # from command prompt, or another shell script ./myScript.sh สิ่งที่ฉันกำลังคิดที่จะทำคือการสร้างเชลล์สคริปต์แบบยูทิลิตี้ที่มีbashฟังก์ชั่นที่สามารถให้บริการได้เมื่อมีที่มา แม้ว่าสคริปต์นี้จะถูกเรียกใช้ด้วยตัวเองฉันก็อยากให้มันทำงานบางอย่างตามหน้าที่ที่กำหนดไว้เช่นกัน มีตัวแปรสภาพแวดล้อมบางชนิดที่เชลล์สคริปต์นี้สามารถรับได้เช่น some_function() { # ... } if [ -z "$IS_SOURCED" ]; then some_function; fi โดยเฉพาะอย่างยิ่งฉันกำลังมองหาโซลูชันที่ไม่ต้องการสคริปต์ผู้โทรเพื่อตั้งค่าตัวแปรสถานะใด ๆ แก้ไข : ฉันทราบความแตกต่างระหว่างการจัดหาและการเรียกใช้สคริปต์สิ่งที่ฉันพยายามค้นหาที่นี่หากเป็นไปได้ที่จะบอกความแตกต่างในสคริปต์ที่ใช้งานอยู่ (ทั้งสองวิธี)
22
bash
shell-script