Como executar o script bash com parâmetros:
./foo.sh a b c
Quando está compactado (por exemplo, usando xz
).
xzcat foo.sh | bash <<how_to_supply_here_parameters?>>
Caso de uso específico:
Eu produzi um rmlint.sh
arquivo muito grande e o armazeno compactado:
time rmlint -o sh:stdout -c sh:hardlink|tee >( xz > rmlint.sh.xz )
Portanto, eu normalmente executaria
./rmlint.sh -d -x -p
No entanto, o arquivo é muito grande para ser descompactado. Portanto, eu adoraria fazer o mesmo canalizando-o para bash:
xzcat rmlint.sh.xz | bash ...
Você deve usar a
-s
opção e--
para separar os argumentos que deseja passar:Isso deve funcionar com qualquer shell POSIX, não apenas
bash
. De susv4 :