Se s2
puder aceitar vários argumentos, você poderá:
(IFS=,; ./s2 $(./s1))
que temporariamente substitui o IFS por vírgula, tudo em um subshell, de modo que s2
veja a saída de s1
dividida por vírgulas. O subshell é uma forma abreviada de alterar o IFS sem salvar o valor anterior ou redefini-lo.
Uma versão anterior desta resposta estava incorreta, provavelmente devido a uma configuração do IFS restante, corrompendo os resultados. Obrigado ao ilkkachu por apontando meu erro .
Para percorrer as saídas manualmente e fornecê-las individualmente para s2
, aqui demonstrando o saving & redefinindo o IFS:
oIFS="$IFS"
IFS=,
for output in $(./s1); do ./s2 "$output"; done
IFS="$oIFS"
ou execute os bits IFS em um subshell como antes:
(
IFS=,
for output in $(./s1); do ./s2 "$output"; done
)