Estoy usando Git Bash 2.9.0-64-bit en win7 64bit. Aquí está mi código de shell
function sum1_x(){
a=$1
while [ $a -ge 1 ]; do
sum=$[$sum + $a]
a=$[$a - 1]
done
echo $sum
}
sum $1
En Git Bash, mi historial de tipos es el siguiente:
wen @ PC-WEN MINGW64 / d / git / (dev)
$ sh sum1_x.sh
salida
: qdejar
dejar()
salida()
Después de que escribí sh sum1_x.sh
, Ya no puedo ejecutar ningún comando de shell.Probé muchos comandos como muestra. Sé que hay errores en mi secuencia de comandos, pero ¿cómo puedo volver a ejecutar la secuencia de comandos de shell frente a este tipo de problemas? Nada puedo hacer ahora.
Respuestas
1 para la respuesta № 1Tienes varios problemas con tu script:
- tienes función
sum1_x
pero estas llamandosum $1
- No verificaste que el valor de entrada existe, por eso te atascas en un bucle infinito
Aquí está el script corregido con la comprobación de que el argumento de entrada existe:
function sum1_x(){
a=$1
while [ $a -ge 1 ]; do
sum=$[$sum + $a]
a=$[$a - 1]
done
echo $sum
}
if [ -z "$1" ]; then # check that input parameter is exists
echo "No input"
else
sum1_x $1
fi
Como detener el programa:
Ctrl + "c"
- Abre nuevo mingw y encuentra
pid
del progrman viaps -aux | grep "sum1_x.sh"
y luego usar kill pid para matar el programa
0 para la respuesta № 2
Como se muestra en la pregunta, el script de shell contiene muchos errores. El comando sh sum1_x.sh
Estaba equivocado también.Debería ser reemplazado por comando sh sum1_x.sh 9
O cosas así. Después de corregir estos errores, se ejecuta sin problemas e imprime la suma correcta.
Pero todavía no sabía cómo comprar el script de shell. Afortunadamente, por accidente, hice clic en Ctrl & c, y puedo ingresar los comandos de shell nuevamente.