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