A saída dos comandos 3 ls
é passada para o comando paste
, que os mescla no valor:
$VOLTDB_VOLTDB"/voltdb-*.jar:$VOLTDB_LIB"/*.jar:$VOLTDB_LIB"/extension/*.jar
NOTA: As variáveis $VOLTDB_VOLTDB
e $VOLTDB_LIB
serão expandidas e pode haver mais valores do que apenas um arquivo para cada um desses comandos ls
. Veja o *
ai? Esse é um caractere glob que age como um caractere curinga e se expande para qualquer coisa entre o lado esquerdo (voltdb-) e o lado direito (.jar), por exemplo.
Estes corresponderiam:
voltdb-1.jar
voltdb-blah.jar
voltdb-12345.jar
Tudo é então incluído na variável APPCLASSPATH
:
APPCLASSPATH=$CLASSPATH:$VOLTDB_VOLTDB"/voltdb....etc.
O comando colar
Aqui está um exemplo em que estou usando o comando seq
para gerar uma sequência de números, 1-10.
$ seq 10 | paste -sd ':' -
1:2:3:4:5:6:7:8:9:10
Você pode ver que o comando paste
está mesclando a saída e a separando com dois pontos ( :
).
Você também pode imitar o comando de exemplo assim:
$ { echo "hi1"; echo "hi2"; echo "hi3"; } | paste -sd ':' -
hi1:hi2:hi3
OBSERVAÇÃO: O comando -
to the paste diz para obter a entrada de STDIN e imprimir cada argumento conforme ele é enviado, separado por :
.
Com diferentes opções para paste
, também é possível dividir os dados em grupos, com base no número de -
depois dela.
Colar exemplos
Veja um exemplo com 2 -
's.
$ seq 10 | paste - -
1 2
3 4
5 6
7 8
9 10
Aqui estão 3 -
's.
$ seq 10 | paste - - -
1 2 3
4 5 6
7 8 9
10
Então, está dizendo paste
quantos argumentos paste
devem ser impressos em cada linha. Mas não se confunda, o exemplo com o qual você está lidando é simplesmente pegar a entrada de STDIN, separar cada argumento em espaços e imprimi-lo seguido por um :
. Ao dar vários -
, você está dizendo paste
para receber argumentos, 2 e uma vez, 3 de cada vez, etc.
Argumentos 2 por vez, separados por :
's:
$ seq 10 | paste -d ':' - -
1:2
3:4
5:6
7:8
9:10
$ seq 10 | paste -d ':' - - -
1:2:3
4:5:6
7:8:9
10::
Por acaso, se você incluir a opção -s
, estará dizendo paste
para usar os argumentos em série (em série). Veja o que acontece quando você o usa em um dos exemplos acima.
2 de cada vez:
$ seq 10 | paste -sd ':' - -
1:2:3:4:5:6:7:8:9:10
3 de cada vez:
$ seq 10 | paste -sd ':' - - -
1:2:3:4:5:6:7:8:9:10