Script de shell para pasar argumentos al archivo de entrada.
Tengo un script de shell que recibe una entrada del usuario y pasa esa entrada al archivo que estoy utilizando dentro de mi script de shell.
Script de shell myscript.sh
kubectl create -f de_pod.yaml
Aquí está de_pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
restartPolicy: Never
containers:
- name: run-esp
image: myimage:1
command: ["python", "/script.py", "$Input1", "$input2"]
imagePullPolicy: Always
stdin: true
tty: true
Así es como se ejecuta el script
sh myscript.sh my1stinput my2ndinput
Si observa de_pod.yaml
en la línea command: ["python", "/script.py", "$Input1", "$input2"]
, aquí estoy utilizando la entrada del usuario después de ejecutar mi myscript.sh
. Pero tanto $input1
como $input2
no están tomando mi valor.
¿Qué estoy haciendo mal?
davy.ai
El problema radica en la sensibilidad a las mayúsculas y minúsculas de los nombres de las variables en el script de shell. En el archivo YAML, las variables se nombran como “$Input1” y “$input2”, mientras que en el script de shell, se nombran como “my1stinput” y “my2ndinput”.
Para solucionar esto, debes modificar el script para pasar los nombres de variables correctos al archivo YAML.
El script de shell actualizado debería verse así:
Y el archivo YAML actualizado debería verse así:
Aquí, estamos pasando los valores de “my1stinput” y “my2ndinput” al archivo YAML como variables de entorno “INPUT1” e “INPUT2”. También estamos utilizando los nombres de variables correctos en el archivo YAML, encerrándolos entre llaves “{}” y haciéndolos minúsculos.
Realizando estos cambios, tu script debería funcionar correctamente y pasar la entrada del usuario al archivo YAML.