2012-03-22 15 views
21

Si tengo un archivo de texto con un comando separado en cada línea, ¿cómo haré que el terminal ejecute cada línea como un comando? Simplemente no quiero tener que copiar y pegar 1 línea a la vez. NO TIENE que ser un archivo de texto ... Puede ser cualquier tipo de archivo que funcione.ubuntu ejecuta el archivo de texto como comando

ejemplo .txt

sudo command 1 
sudo command 2 
sudo command 3 

Respuesta

38

se puede hacer un shell script con los comandos, y luego chmod +x <scriptname.sh>, y luego lo ejecutas por

./scriptname.sh 

Es muy sencillo escribir un script bash

Mockup sh file:

#!/bin/sh 
sudo command1 
sudo command2 
. 
. 
. 
sudo commandn 
+0

puede escribir un archivo .sh de maqueta con mi ejemplo – Blainer

+0

Las extensiones de Linux no son obligatorias (incluso puede crear un archivo sin extensiones). Funciona incluso si la extensión es .txt – Saphrosit

+0

Sí, pero debe tener este "#!/Bin/sh" al principio de su archivo para que el kernel sepa que es un script de shell – Chaos

43

también puede simplemente ejecutarlo con una concha, por ejemplo:

bash example.txt 

sh example.txt 
+6

Solo el atajo que estaba buscando. Gracias. – saccharine

+0

también para depurarlo puede usar bash -x example.txt –

+0

esta es la razón por la que instalé Ubuntu. Sabía que hay una manera más simple. – MJoraid

6

se puede usar algo como esto:

for i in `cat foo.txt` 
do 
    sudo $i 
done 

Aunque si los comandos tienen argumentos (es decir, hay espacios en blanco en las líneas) es posible que tenga que buscar un poco para proteger el espacio en blanco para que toda la cadena se vea por sudo como un comando. Pero te da una idea sobre cómo comenzar.

Cuestiones relacionadas