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
.