Nhờ mọi người giải thích dòng `chuoi=$(find / -name "$1")` trong bash code

Chương trình kiểm tra thư mục/tập tin cần tìm có tồn tại trong hệ thống linux hay không? Mọi ng giải thích giúp mình dòng 2 và 3 với. Mình cảm ơn!

#!/bin/bash
chuoi=$(find / -name "$1")
if [ -z $chuoi ]
then
	echo "khong ton tai"
else
	echo "link cua tap tin la $chuoi"
fi

Line 1: shebang << chỉ cho OS biết cái shell nào sẽ dùng để thông dịch/chạy tập script này.

Line 2:
$(command) << parse/ chạy câu lệnh trong ngoặc trước, trả về kết quả/output, gán vào biến chuoi
$1 << tham số thứ nhất từ dòng lệnh.

Line 3: -z là viết tắt của test -z , ý là kiểm tra chuổi đó có độ dài bằng zero hay không.
Bạn có thể gỏ man test trên command line để xem thêm các tham số khác của lệnh test.

3 Likes

Cho mình hỏi " -name " có ý nghĩa gì vậy?

Cấu trúc của lênh find chỉ ra tiêu chí để tìm kiếm.
vd:
-name : tìm theo tên
-mtime: tìm theo last modifed time
-size: kích thước

dấu / nghĩa là tìm từ thư mục gốc (tìm hết trên máy luôn)
Nếu muốn tìm trong thư mục khác thì ghi rõ ra, vd: /home/myname/Documents/

man find để xem manual của lệnh find

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