Ý nghĩa câu lệnh trong Linux

Các bác cho em hỏi ý nghĩa của câu lệnh này:
$ ./chuongtrinh ~/tepcuatoi.txt
Trong đó:
chuongtrinh: Là một tệp tin
Em hiểu được ./chuongtrinh là chạy file chuongtrinh trong thư mục hiện hành, còn đối số ~/tepcuatoi.txt nghĩa là sao ạ?

Tất cả do code của chuongtrinh quyết định argument sẽ làm gì.

4 Likes

Giả sử shell script của file chuongtrinh có hai đoạn sau:

echo "Xin chao"
echo "daynhauhoc"

Thì ý nghĩa của đoạn
$ ./chuongtrinh ~/tepcuatoi.txt là gì ạ?

Đoạn mã đó thực thi chuongtrinh với argument là ~/tepcuatoi.txt. Ở đây chuongtrinh không làm gì ngoài in 2 dòng chữ kia cả.

Bạn có thể tự chạy tạo 1 file chuongtrinh, gọi lệnh trên và tự xem kết quả.

5 Likes

Em chạy thử hiện ra hai dòng

Xin chao
daynhauhoc

Nhưng làm cách nào để file ~/tepcuatoi.txt có ý nghĩa , có hiệu lực trong đoạn shell script $ ./chuongtrinh ~/tepcuatoi.txt ạ. Đoạn này em đọc trong tài liệu về hướng dẫn sử dụng linux, cụ thể cả nguyên đoạn như sau:

Không có đối số , cd sẽ chyển tới thư mục nhà của người dùng. Thư mục nhà sẽ là /root cho người dùng cao cấp (superuser) và điển hình là /home/username cho người dùng bình hường. Nhưng nếu muốn chỉ rõ một tệp tin trong thư mục nhà thì sao? Ví dụ chúng ta muốn dùng tệp tin làm đối số cho câu lệnh chuongtrinh. Nếu tệp tin “trú ngụ” trong thư mục nhà, có thể gõ:
$ ./chuongtrinh /home/teppi82/tepcuatoi.txt
Em đọc mãi mà không hiểu ạ. :sweat_smile:

Giờ có người đưa tiền cho bạn, bạn không xài, thì tiền đó không có ý nghĩa chứ sao
Muốn tiền đó có ý nghĩa thì bạn phải xài, xài như thế nào là do bạn, bạn đốt để nấu trứng cũng là có ý nghĩa

6 Likes

Mèn đét ơi :smile:


Giả sử script chuongtrinh của cậu như thế này:

#!/bin/bash
echo "Xin chao daynhauhoc"
echo "In ra nội dung file $1"
cat "$1"

Script này sẽ nhận 1 đối số (argument) đầu vào, và lưu nó ở biến $1 (đây là default behavior của shell script nha :smile:), sau đó in nội dung file được truyền ở argument thứ nhất ấy ($1).
Cậu có thể làm bất cứ điều gì cậu muốn với tên file được lưu ở $1.

Khi cậu chạy:

./chuongtrinh ~/tepcuatoi.txt

Đối số (argument) ~/tepcuatoi.txt sẽ được truyền vào $1, và cậu nên thấy nội dung của file tepcuatoi.txt, nếu file đó tồn tại.

Hope it helps!

6 Likes

Cảm ơn bạn nhiều nha!! :sweat_smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?