Cách thay đổi thư mục bằng script


10

Tôi có kịch bản này

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

nó hoạt động như mong đợi, nhưng tôi muốn kịch bản này chuyển tôi đến / home / user / somedir, nhưng tôi vẫn ở trong cùng một thư mục.

Làm cách nào để viết tập lệnh sẽ chuyển tôi (trong gnome-terminal) đến / home / user / somedir?


Câu trả lời:


14

Bạn cần sourcekịch bản của bạn. Nếu không, nó sẽ được chạy trong một lớp con riêng biệt, thay đổi thư mục làm việc của lớp con nhưng không phải là lớp vỏ bạn chạy nó.

Để nguồn nó:

. myfile.sh

hoặc là

source myfile.sh

Bạn có thể đọc thêm ở đây


Tôi chỉ định thêm rằng .... UAdad CHƯƠNG nếu bạn đang chạy tập lệnh shelll như sh myfile.sh hoặc ./myfile.sh, nó sẽ chạy như danjil mô tả. Một trong những lựa chọn của danjil sẽ phù hợp với bạn.
itnet7

3

Sử dụng exec bashở cuối

Một tập lệnh bash hoạt động trên môi trường hiện tại của nó hoặc trên môi trường con cái của nó, nhưng không bao giờ trên môi trường cha mẹ của nó.

Tuy nhiên, câu hỏi này thường được hỏi vì người ta muốn để lại dấu nhắc bash trong một thư mục nhất định sau khi thực thi tập lệnh bash từ thư mục khác.

Nếu đây là trường hợp, chỉ cần thực hiện một cá thể bash con ở cuối tập lệnh:

#!/bin/bash
cd /home/user/somedir
exec bash
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.