¿Edgemax - cómo ejecutar comando de modo de funcionamiento de los scripts?

Resumen


Los lectores aprenderán cómo ejecutar comandos de modo de funcionamiento de los scripts. 

Ejemplo


Script de ejemplo:

ubnt@ubnt:~$ cat myscript 
#!/bin/bash 
show version 
show interfaces

Me aseguré que era ejecutable con la secuencia de comandos:

ubnt@ubnt:~$ chmod +x myscript

Pero cuando lo ejecuto, me sale los siguientes errores:

ubnt@ubnt:~$ ./myscript
./myscript: line 2: show: command not found
./myscript: line 3: show: command not found

¿Por qué no funciona? 

Respuesta : el guión carece de las variables de entorno que necesita.  Para solucionarlo puede ejecutar el comando con envoltura de comando que tiene las variables de entorno que necesita.  Por ejemplo:

ubnt@ubnt:~$ cat myscript
#!/bin/bash
run=/opt/vyatta/bin/vyatta-op-cmd-wrapper
$run show version
$run show interfaces

Ahora cuando se ejecuta la secuencia de comandos tenemos:

ubnt@ubnt:~$ ./myscript
Version:      v1.2.0alpha2
Build ID:     4558456
Build on:     05/02/13 16:24
Copyright:    2012-2013 Ubiquiti Networks, Inc.
HW model:     EdgeRouter Lite 3-Port
HW S/N:       DC9FDB29DBEE
Uptime:       22:09:25 up 11 days,  1:25,  1 user,  load average: 0.08, 0.02, 0.01

Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address                        S/L  Description                 
---------    ----------                        ---  -----------                 
eth0         192.168.1.1/24                    u/D  secure LAN                  
eth1         192.168.2.1/24                    u/D  public LAN                  
eth1.100     2.2.2.3/24                        u/D                              
eth2         1.1.1.2/24                        u/u  WAN                         
lo           127.0.0.1/8                       u/u           

En orden para la secuencia de comandos sobrevivir una actualización, usted querrá moverse al directorio /config desde ese directorio todo es copiado en el proceso de actualización.

mv myscript /config/scripts

Ubiquiti Employee & Ubiquiti Employee