การใช้ / usr / bin / env เพื่อเปลี่ยนไดเรกทอรี [ปิด]


-1

ฉันต้องการรันคำสั่งโดยอัตโนมัติด้วยคำนำหน้า /usr/bin/env

$/usr/bin/env composer install (this runs OK)
$/usr/bin/env cd public (failed ---> /usr/bin/env: cd: No such file or directory)

ฉันใหม่กับ Linux และในความคิดของฉันใช้ /usr/bin/env เป็นวิธีที่แปลกในการเขียนคำสั่ง ฉันสงสัยว่าเพราะเหตุใดบรรทัดที่สองของฉันจึงไม่ทำงาน mkdir หรือ ls )

เหตุผลที่ฉันไม่สามารถกำจัดได้ /usr/bin/env คือฉันกำลังใช้ Capistrano และมันจะช่วยเติมคำนำหน้าไว้ หากมีวิธีการกำจัด /usr/bin/envที่ดียิ่งขึ้น

ขอบคุณล่วงหน้า.


มันไม่ชัดเจนว่าคุณกำลังพยายามทำอะไรและทำไมคุณถึงใช้ /usr/bin/env ในที่แรก.
Pavel Šimerda

ดังที่ฉันได้กล่าวไว้ด้านล่างฉันใช้ Capistrano เพื่อเรียกใช้คำสั่งบนเซิร์ฟเวอร์ผ่าน SSH และมีคำสั่งมากมายที่เตรียมไว้ /usr/bin/env
Hoang Lam

ตอนนี้ยังไม่ดีกว่านี้มากนัก
Pavel Šimerda

คำตอบ:


2

คุณไม่สามารถเรียกใช้ env cd /path/to/directory เพราะไม่มีโปรแกรมที่เรียกว่า cd ในระบบของคุณ กระบวนการสามารถเปลี่ยนไดเรกทอรีทำงานโดยใช้การเรียกระบบ ในเชลล์คุณสามารถใช้คำสั่ง builtin cd. เรียกมันจาก env ไม่สมเหตุสมผลเนื่องจากสร้างกระบวนการใหม่ที่จะออกหลังจากเปลี่ยนไดเรกทอรีทำงาน ใหม่ env กระบวนการไม่สามารถเปลี่ยนไดเรกทอรีการทำงานของกระบวนการโทรในวิธีมาตรฐาน


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