Você não precisa de ;
após then
em then ;echo "{}" >>output.txt
.
Uso:
then echo "{}" >>output.txt
Observe também que, em vez de tocar com {}
, use os parâmetros posicionais do shell (não estou familiarizado com svn
, por isso confie em seus comandos):
find /dir/containing/repos -maxdepth 2 -type d -exec bash -c 'if svnlook info /path/to/repo >/dev/null ;then echo "" >>output.txt ;svnadmin verify "" >>output.txt ;fi' _ {} \;
-
if svnlook info /path/to/repo >/dev/null
executará o comando e redirecionará o STDOUT para/dev/null
-
Se o comando
svnlook info /path/to/repo
for bem-sucedido (código de saída 0), os comandosecho "" >>output.txt ;svnadmin verify "" >>output.txt
serão executados -
Aqui estamos usando os nomes dos diretórios
{}
como o primeiro argumento () a ser processado pelo shell.
-
_
aqui é apenas um espaço reservado indicando o parâmetro posicional 0, poisbash -c command
começa a considerar qualquer argumento adicional após ocommand
a partir de 0. Como_
é o argumento zero, podemos usar{}
como o primeiro argumento. Verifiqueman bash
para ter mais ideia.