Điểm:0

Tập lệnh Bash để di chuyển tệp dựa trên đầu vào của người dùng

lá cờ vn

Tôi mới làm quen với Bash và viết mã nói chung và sẽ không nói dối. Tôi cần trợ giúp cho một bài tập về nhà trong đó cần tạo một tập lệnh yêu cầu người dùng nhập tên tệp, sau đó di chuyển nó đến một vị trí được chỉ định.

Tôi cho rằng tập lệnh để thực sự di chuyển tệp sẽ là

#!/bin/bash
mv /đường dẫn/đến/nguồn /đường dẫn/đến/đích

Nhưng làm cách nào để triển khai điều này khi yêu cầu người dùng nhập tên tệp muốn di chuyển và vị trí họ muốn di chuyển đến?

Tôi đang sử dụng Ubuntu được cài đặt với VirtualBox.

Tyberius avatar
lá cờ us
Hướng dẫn liên quan: https://ryanstutorials.net/bash-scripting-tutorial/bash-input.php
Điểm:2
lá cờ in
Cas

Về cơ bản, tập lệnh sẽ yêu cầu đường dẫn tệp và sau đó yêu cầu một thư mục để đặt tệp vào:

#!/bin/bash

# đặt biến "tệp" thành trống
hủy đặt tập tin

#tiếp tục hỏi cho đến khi (= vòng lặp cho đến khi) biến được lấp đầy bằng đường dẫn đến tệp
cho đến khi [[ -f "$file" ]]
làm
        #yêu cầu người dùng nhập tệp và lưu nội dung được nhập vào biến "tệp"
        read -rp "Vui lòng cung cấp đường dẫn đến tệp: " tệp
xong

#now làm tương tự cho thư mục đích nhưng tiếp tục hỏi cho đến khi chuỗi đã nhập là thư mục hợp lệ hiện có
bỏ đặt thư mục
cho đến khi [[ -d "$folder" ]]
làm
        read -rp "Vui lòng cung cấp đường dẫn đến thư mục để đặt tệp vào thư mục: "
xong

#các biến "tệp" và "thư mục" hiện đã chứa đầy các đường dẫn hợp lệ, vì vậy hãy di chuyển tệp
mv "$file" "$folder" \ #the "\" có nghĩa là "chuyển sang dòng tiếp theo nhưng coi nó như một dòng lớn"; dễ đọc hơn
&& echo "Moved $file to $folder" \ #chạy lệnh này khi lệnh mv thành công (vì &&)
|| echo "Failed to move $file to $folder" #run cái này khi lệnh mv không thành công (vì ||)
WinEunuuchs2Unix avatar
lá cờ in
Bạn có thể thêm thông báo rằng tệp nguồn không tồn tại. Bạn có thể thêm cảnh báo rằng đích đã tồn tại và sẽ bị ghi đè. Vẫn +1 cho kịch bản hay.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.