วิธีการเปลี่ยนไดเรกทอรีโดยใช้สคริปต์


10

ฉันมีสคริปต์นี้

#!/bin/bash
cd /home/user/somedir
pwd

มันทำงานได้ตามที่คาดไว้ แต่ฉันต้องการให้สคริปต์นี้ส่งฉันไปที่ / home / user / somedir แต่ฉันยังคงอยู่ใน dir เดียวกัน

วิธีเขียนสคริปต์ที่จะส่งฉัน (ใน gnome-terminal) ไปยัง / home / user / somedir?


2
ความเป็นไปได้ที่ซ้ำกันของเหตุใด "cd" จึงไม่ทำงานในเชลล์สคริปต์
muru

คำตอบ:


14

คุณต้องsourceสคริปต์ของคุณ หากไม่ใช่จะถูกเรียกใช้ใน subshell แยกต่างหากการเปลี่ยนไดเรกทอรีการทำงานของ subshell แต่ไม่ใช่เชลล์ที่คุณรัน

แหล่งที่มา:

. myfile.sh

หรือ

source myfile.sh

คุณสามารถอ่านเพิ่มเติมได้ที่นี่


ฉันเพิ่งจะเพิ่มที่ .... UAdadapter ถ้าคุณกำลังเรียกใช้สคริปต์ shelll เช่น sh myfile.sh หรือ. / myfile.sh มันจะทำงานตาม danjil อธิบาย ตัวเลือกของ Danjil ควรจะเหมาะกับคุณ
itnet7

3

ใช้exec bashในตอนท้าย

สคริปต์ทุบตีทำงานในสภาพแวดล้อมปัจจุบันหรือกับลูก ๆ ของมัน แต่ไม่เคยอยู่ในสภาพแวดล้อมหลัก

อย่างไรก็ตามคำถามนี้มักจะถูกถามเพราะต้องการทิ้งไว้ที่ bash prompt ในไดเรกทอรีหนึ่งหลังจากทำการประมวลผลสคริปต์ bash จากไดเรกทอรีอื่น

หากเป็นกรณีนี้ให้เรียกใช้งานอินสแตนซ์ bash ย่อยที่ส่วนท้ายของสคริปต์:

#!/bin/bash
cd /home/user/somedir
exec bash
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.