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 ạ?
Ý nghĩa câu lệnh trong Linux
Tất cả do code của chuongtrinh quyết định argument sẽ làm gì.
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ả.
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 ạ.
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
Mèn đét ơi
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 ), 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!
Cảm ơn bạn nhiều nha!!