Tenía este script:
spd-say "Hello, don't forget the trash bin."
Entonces me recordó lo que se suponía que debía hacer, lo moví /usr/local/bin/
y el comando trash
pronunció el argumento, luego configuré un trabajo crontab , para que me recordara todos los días lo que quería hacer. Pero el crontab no funcionó y no pude entender por qué (hace otros trabajos sin problemas).
Una vez que vi este mensaje en mi terminal:
You have new mail in /var/mail/root
al final de lo cual esta línea me hizo cometer un grave error:
/bin/sh: 1: trash: not found
Sé que fue una tontería pero lo hice:
mv /usr/local/bin/trash /bin/sh
pensando que sh
es un directorio y debería mover el script allí para que se ejecute.
Ahora, cuando quiero ver una página de manual, el sistema dice:
"Hola, no olvides la papelera".
Y la salida de cat sh
es:
#!/bin/bash
spd-say "Hello, don't forget the trash bin. "
De todos modos, ¿puedo hacer algo o tengo que reinstalar mi sistema operativo?
man
documentos son basura (o difícil de entender)Respuestas:
En los sistemas Ubuntu,
/bin/sh
es un enlace simbólico aldash
shell por defecto:Entonces (suponiendo que su emulador de terminal use el shell bash y no se haya roto por su error) todo lo que necesita hacer es volver a crear el enlace:
fuente
mv /usr/local/bin/trash /bin/sh
,sh
: No podrías vivir con tu propio fracaso, ¿a dónde te trajo eso? De vuelta a mí.No, no tiene que reinstalar su sistema. / bin / sh es solo un enlace suave a su shell.
readlink -f /bin/sh /bin/bash
En mi caso bash. Mueve tu script y crea un enlace suave a tu shell favorito.fuente
sudo dpkg-reconfigure dash
, según ¿Cómo puedo hacer que / bin / sh apunte a / bin / bash? . También tenga en cuenta que el shell del sistema no es el shell interactivo predeterminado.