ฉันพบBASEDIR=$(pwd)ในสคริปต์
มีข้อดีหรือข้อเสียมากกว่าการใช้BASEDIR="$PWD"นอกจากนั้น$PWDอาจถูกเขียนทับหรือไม่?
$(pwd)เพราะ$PWDสามารถล้าสมัยในบางสถานการณ์
pwdอาจให้ข้อมูลเก่าแก่คุณน้อยกว่า$PWDในบางกรณี $(pwd)ในทางกลับกันจะไม่ทำงานหากไดเรกทอรีปัจจุบันลงท้ายด้วยอักขระขึ้นบรรทัดใหม่หมายถึงการฟอร์กกระบวนการ (ยกเว้นใน ksh93) และใช้ทรัพยากรเพิ่มเติม มุมมองของฉันคือการใช้งาน$PWDของมันไม่คุ้มค่าใช้$(pwd -P) $(pwd)
cd -P -- "$dir"ที่ด้านล่างมีสเตฟานกล่าวถึงการใช้ หากมีข้อสงสัยเกี่ยวกับคุณค่าของ$PWDคุณสามารถเสมอcd -P .ก่อน สิ่งนี้อาจเป็นประโยชน์ในการที่คุณได้รับสิ่งที่$PWDเคยเป็นมาก่อนใน$OLDPWDและเพื่อให้สามารถเปรียบเทียบพวกเขาในภายหลัง - และcd ...; cd -ลำดับต่อไปจะต้องแน่ใจว่าจะนำคุณกลับไปที่ที่คุณอยู่ตอนนี้