Acest script va face treaba (am numit scriptul filestat
- pune-l in cale):
#!/bin/bash
# Repetați fiecare argument
pentru fișierul în „$@”; do
perm_type=('Utilizator' 'Grup' 'Altul')
(( j = 0 ))
# Verificați dacă fișierul există
dacă [[ -e „$fișier” ]]; atunci
# Imprimați numele fișierului
echo -e „\nNume fișier: $fișier”
# Izolați octetul de permisiune
perm_octet=$( stat -c "%a %n" "$fișier" | cut -d ' ' -f 1 )
# Adăugați fiecare valoare de octet la matrice
perm_array=()
pentru (( i = 0; i < "${#perm_octet}"; i++ )); do
perm_array+=("${perm_octet:$i:1}")
Terminat
# Iterează peste matrice
pentru x în „${perm_array[@]}”; do
# Tipul de permisiune de imprimare și creșterea contorului
echo -n "${perm_type[$j]} permisiunea: "
(( j++ ))
# Verificați dacă permisiunea este zero (niciuna), imprimați și începeți următoarea iterație
dacă (( "$x" == 0 )); atunci
ecou "NONE"
continua
fi
# Verificați dacă permisiunea are „citește”, tipăriți și scădeți 4
dacă (( "$x" > 3 )); atunci
echo -n "citește"
(( x = x - 4 ))
fi
# Verificați dacă permisiunea are „scriere”, tipăriți și scădeți 2
dacă (( "$x" > 1 )); atunci
echo -n "scrie"
(( x = x - 2 ))
fi
# Verificați dacă permisiunea are „execuție”, imprimați și scădeți 1
dacă (( "$x" > 0 )); atunci
echo -n "execută"
(( x = x - 1 ))
fi
ecou ""
Terminat
fi
Terminat
EDITARE: Preia orice număr de fișiere ca intrare și verifică dacă fișierul există. Exemplu de ieșire:
$ filestat ~/.bashrc ~/.config
Nume fișier: /home/am/.bashrc
Permisiunea utilizatorului: citire scriere
Permisiune de grup: citire scriere
Altă permisiune: citire
Nume fișier: /home/am/.config
Permisiune utilizator: citire scriere executare
Permisiune de grup: NIMIC
Alte permisiuni: NIMIC