Expansão de parâmetro em múltiplas variáveis

3

A expansão de parâmetros em uma única variável funciona conforme o esperado. Mas como expandir parâmetros que compreendem diversas variáveis? Exemplo:

#!/bin/sh

foo=/lorem/ipsum; bar=dolor/sit

tmp="$foo/$bar"
printf '%s\n' "${tmp%/*}"

Como executar essa expansão de parâmetro sem a necessidade da variável temporária?

    
por Marco 16.01.2016 / 20:18

2 respostas

2

A expansão permite apenas uma variável, necessitando de temp var. No entanto, se este é o caso de uso exato, o dirname pode funcionar para você, já que ele faz exatamente a mesma coisa que% / *:

$ foo=/lorem/ipsum; bar=dolor/sit
$ dirname $foo/$bar
/lorem/ipsum/dolor
    
por 17.01.2016 / 04:14
0

Aqui está uma ... solução alternativa ... que não define a variável temporária no shell atual :

foo=/lorem/ipsum; bar=dolor/sit
(tmp="$foo/$bar"; printf '%s\n' "${tmp%/*}")
    
por 16.01.2016 / 21:20

Tags