У меня есть большая проблема, и я не знаю, как я могу ее решить.
#!/bin/bash
function prueba(){
valor=$1
echo "Hola ${valor}"
}
prueba $valor
поэтому, когда я пишу в консоли:
./beta1.sh prueba 123
Распечатать:
Hola
Я ожидал увидеть:
Hola 123
$valor
на$2
? - person Cyrus   schedule 06.06.2021$1
— это только первый аргумент. Вы передаете два аргумента, а не один, и в функции$1
относится к первому аргументу функции, а не к первому аргументу сценария. Поскольку до тех пор, пока функция не будет запущена,valor
пусто, функции вообще не передаются аргументы, как в настоящее время написано. - person Charles Duffy   schedule 06.06.2021prueba "$*"
- person Charles Duffy   schedule 06.06.2021function
— плохой тон; см. wiki.bash-hackers.org/scripting/obsolete (об этом есть записи в нескольких таблицах; прочитайте их обе). Лучше просто написатьprueba() { ...
безfunction
в начале. - person Charles Duffy   schedule 06.06.2021