sed -i
-i
diz para editar o arquivo no local, ou seja, escrever a nova versão com o mesmo nome
/JBOSS_HOME\/bin\/run.sh/
Um padrão, separado por barras, as barras contidas no padrão são citadas com barras invertidas, portanto, corresponde a qualquer linha contendo JBOSS_HOME/bin/run.sh
. (Na verdade, como é uma regex, o ponto corresponde a qualquer caractere.)
i \export TMP_FOLDER=$JBOSS_HOME/server/default/tmp '
Comando para executar quando o padrão corresponde, i
é para inserir uma linha (antes da atual). A linha a ser adicionada é separada pela barra invertida, então isso adiciona a string export TMP_FOLDER=$JBOSS_HOME/server/default/tmp
.
/home/jboss/runJBOSSEAP.sh
Nome do arquivo de destino.
por exemplo,
$ echo JBOSS_HOME/bin/run.sh > pla
$ sed -i '/JBOSS_HOME\/bin\/run.sh/i \export TMP_FOLDER=$JBOSS_HOME/server/default/tmp ' pla
$ cat pla
export TMP_FOLDER=$JBOSS_HOME/server/default/tmp
JBOSS_HOME/bin/run.sh
É praticamente o mesmo que por exemplo o exemplo aqui