tutorial scripts script resueltos programas paso pasar parametros manejo hacer español ejercicios ejemplos como cadenas bash sudo heredoc

scripts - Genere un script en bash y guárdelo en una ubicación que requiera sudo



scripts bash ejemplos (2)

Así es como lo haría:

sudo tee "$OUTFILE" > /dev/null <<''EOF'' foo bar EOF

En bash puedo crear un script con un documento aquí como también para este sitio: http://tldp.org/LDP/abs/html/abs-guide.html#GENERATESCRIPT

( cat <<''EOF'' #!/bin/bash #? [ ] / / = + < > : ; " , * | #/ ? < > / : * | ” #Filename="z:"${$winFn///////} echo "This is a generated shell script." App=''eval wine "C:/Program Files/foxit/Foxit Reader.exe" "''$winFn''"'' $App EOF ) > $OUTFILE

Si mi $OUTFILE es un directorio que requiere privilegios de sudo dónde pongo el comando sudo o qué más puedo hacer para que funcione?


Simplemente poner sudo antes de que cat no funcione porque >$OUTFILE intenta abrir $OUTFILE en el proceso de shell actual, que no se ejecuta como root. Necesita que la apertura de ese archivo suceda en un subproceso sudo .

Aquí hay una forma de lograr esto:

sudo bash -c "cat >$OUTFILE" <<''EOF'' #!/bin/bash #? [ ] / / = + < > : ; " , * | #/ ? < > / : * | ” #Filename="z:"${$winFn///////} echo "This is a generated shell script." App=''eval wine "C:/Program Files/foxit/Foxit Reader.exe" "''$winFn''"'' $App EOF

Esto inicia un sub-shell bajo sudo , y abre $OUTFILE desde ese subproceso más privilegiado, y ejecuta cat (como otro subproceso privilegiado). Mientras tanto, el proceso principal (menos privilegiado) canaliza el documento aquí al subproceso sudo .