if else statement: verifica se existe um caminho armazenado em uma variável [closed]

1

Eu tenho problemas com uma declaração if no meu script. Eu armazenei um caminho em uma variável e quero usar a instrução if ... else para verificar se o arquivo (file1) no caminho da variável existe ou não. Este é o meu código:

variable=$/home/username/file1

if [ -f "${variable}" ]
then
    echo "$variable exists"
    exit
else
    echo "file not found"
    exit
fi

Eu também tentei [ -f "$variable" ] , mas em todos os casos, ambas as instruções são executadas. Eu recebo como saída:

/home/username/file1 exists
file not found

Eu acho que o principal problema é que o comando em si não está funcionando. Mas por que não sai depois do primeiro comando de saída? Onde está o grande erro que eu não vejo?

    
por Buggy 03.07.2018 / 10:02

1 resposta

1

O problema no seu script está na primeira linha.

Para atribuir um caminho a uma variável, simplesmente considere-a como uma string:

variable="/home/username/file1"

ou até mesmo isso:

variable=/home/username/file1

então funciona.

O sinal $ é necessário para assgn a saída de um comando para uma variável:

OUTPUT="$(ls -1)"
    
por 03.07.2018 / 10:07