cut -d: -f1 /etc/passwd | sort -r
или
awk -F: '{print $1}' /etc/passwd | sort -r
На самом деле, если вы работаете в системе, которая использует nsswitch (например, большинство, если не все, дистрибутивы Linux и многие другие * nixes эти дней), вам следует использовать getent passwd
вместо простого чтения / etc / passwd
, поскольку существует множество других возможных источников данных учетной записи пользователя (включая LDAP и nis или yp):
getent passwd | cut -d: -f1 | sort -r
getent passwd | awk -F: '{print $1}' | sort -r
Puedes hacerlo de forma compatible
if [ "${RSPN}" = "Y" ] || [ "${RSPN}" = "y" ]
o si está utilizando un bash reciente de todos modos:
if [ "${RSPN^}" = "Y" ]
El siguiente script /bin/sh
insiste en obtener una respuesta válida del usuario (y volverá a preguntar si el usuario no proporciona un y
o un n
o una palabra que comience con uno de esos dos letras, mayúsculas o minúsculas ).
while true; do
printf 'IS THIS A PRODUCTION DATABASE? [y/n]: '
read response
case "$response" in
[Yy]*)
printf 'PLEASE ENSURE A 7 YEARS RETENTION RMAN_FULL BACKUP TAKEN for %s\n' "$DBTD"
break
;;
[Nn]*)
printf 'ERROR: Cannot proceed as 7 Years backup not yet TAKEN for PRODUCTION database. Please take a 7 Years Retention backup and re-run the script again.\n'
printf 'PLEASE CHECK IF BACKUP IS REQUIRED BEFORE DECOMMISSIONING %s\n' "$DBTD"
break
;;
*) printf 'Invalid response "%s"\n' "$response"
esac
done
Si el usuario ingresa N
en su código, parece que desea que se impriman tanto el mensaje de error como el mensaje "POR FAVOR COMPRUEBE". Esta es la razón por la que envío ambos mensajes cuando el usuario ingresa una palabra que comienza con n
.
Si desea que siempre se muestre el mensaje "POR FAVOR COMPRUEBE", simplemente mueva esa línea printf
hasta el final del script.