Kịch bản này sẽ thực hiện thủ thuật (tôi gọi là kịch bản tập tin
- đặt nó vào đường dẫn của bạn):
#!/bin/bash
# Lặp lại từng đối số
cho tệp trong "$@"; làm
perm_type=('Người dùng' 'Nhóm' 'Khác')
(( j = 0 ))
# Kiểm tra xem tệp có tồn tại không
nếu [[ -e "$file" ]]; sau đó
# In tên tệp
echo -e "\nFilename: $file"
# Cô lập octet quyền
perm_octet=$( stat -c "%a %n" "$file" | cut -d ' ' -f 1 )
# Thêm từng giá trị của octet vào mảng
perm_array=()
for (( i = 0; i < "${#perm_octet}"; i++ )); làm
perm_array+=("${perm_octet:$i:1}")
xong
# Lặp lại mảng
cho x trong "${perm_array[@]}"; làm
# Loại quyền in và tăng bộ đếm
echo -n "Quyền ${perm_type[$j]}: "
(( j ++ ))
# Kiểm tra xem quyền có bằng không (không), in và bắt đầu lần lặp tiếp theo
nếu (( "$x" == 0 )); sau đó
tiếng vang "KHÔNG CÓ"
tiếp tục
fi
# Kiểm tra xem quyền có "đọc" hay không, in và trừ 4
nếu (( "$x"> 3 )); sau đó
tiếng vang -n "đọc"
(( x = x - 4 ))
fi
# Kiểm tra xem quyền có "ghi" hay không, in và trừ 2
nếu (( "$x"> 1 )); sau đó
tiếng vang -n "viết"
(( x = x - 2 ))
fi
# Kiểm tra quyền có "execute" hay không, in và trừ 1
nếu (( "$x"> 0 )); sau đó
tiếng vang -n "thực thi"
(( x = x - 1 ))
fi
tiếng vang ""
xong
fi
xong
CHỈNH SỬA: Lấy bất kỳ số lượng tệp nào làm đầu vào và kiểm tra xem tệp có tồn tại không. Đầu ra ví dụ:
$ filestat ~/.bashrc ~/.config
Tên tệp: /home/am/.bashrc
Quyền của người dùng: đọc ghi
Quyền nhóm: đọc ghi
Quyền khác: đọc
Tên tệp: /home/am/.config
Quyền của người dùng: đọc ghi thực thi
Cho phép nhóm: KHÔNG CÓ
Quyền khác: KHÔNG CÓ