que estoy tratando de conseguir un script bash que genera jsdoc para los parámetros dados como esteshell de Linux añadir parámetros variables a Command
./jsdoc.sh file.js another.js maybe-a-third.js
me estoy atascado en la forma de pasar una cantidad desconocida de parámetros para la próxima cáscara mando.
(también, no sé cómo comprobar si existe parámetro, sólo si no exitst if [ -z ... ]
)
Este código funciona durante un máximo de dos parámetros, pero obviamente no es la manera correcta de hacerlo ...
#!/bin/bash
# would like to know how to do positive check
if [ -z "$1" ]
then echo no param
else
d=$PWD
cd ~/projects/jsdoc-toolkit/
# this bit is obviously not the right approach
if [ -z "$2" ]
then java -jar jsrun.jar app/run.js -a -t=templates/jsdoc/ $d/$1
else java -jar jsrun.jar app/run.js -a -t=templates/jsdoc/ $d/$1 $d/$2
fi
cp -R out/jsdoc $d
fi
Cualquier otro indicador de cómo podría lograr esto sería apreciado.
Editar: Actualización de acuerdo con la secuencia de comandos de @ skjaidev respuesta - día feliz;)
#!/bin/bash
d=$PWD
for i in $*; do
params=" $params $d/$i"
done
if [ -n "$1" ]; then
cd ~/projects/jsdoc-toolkit/
java -jar jsrun.jar app/run.js -a -t=templates/jsdoc/ $params
cp -R out/jsdoc $d
fi
Use '" $ @ "' en lugar de '$ * 'para mayor seguridad. También usaría 'if (($ #> 0))' - "$ #" es la cantidad de argumentos. –