Estoy haciendo que el sencillo script de Shell sea un trabajo aburrido y repetitivo. El script cambia el directorio correctamente, y ahora quiero ejecutar otros scripts basados en el argumento que escribí al ejecutar el script. Otros scripts están dispersos en subdirectorios y cada uno es único. Así que quiero insertar solo el nombre del archivo y dejar que el script descubra en qué subdirectorio está ese archivo.
Intenté algo como esto:
filename="default.ini"
while [ $# -gt 0 ]
do
case "$1" in
-f) filename="$(find ./ -name $2)"; shift;;
-*) echo >&2 \
"usage: $0 [-v] [-f file] [file ...]"
exit 1;;
*) break;; # terminate while loop
esac
shift
done
echo $filename
Pero, encontrar no devuelve ningún resultado, por lo que permanece default.ini
. ¿Hay otra manera de resolver esto?
./
en realidad lo que crees que debería ser? ¿Está buscando buscando en el directorio correcto?Respuestas:
Sugeriría que esta es una forma más idiomática de analizar las opciones:
fuente