Como verificar se há uma pasta dentro de uma pasta específica no shell script?

1

Estou trabalhando em um script de shell e script python também. O script Python está passando certos parâmetros para o meu script de shell e, em seguida, estou usando esses parâmetros no meu script de shell.

Abaixo está o meu script de shell -

#!/bin/bash

readonly MACHINES=(machineB machineC)
readonly MAPPED_LOCATION=/bat/peta/t1_snapshot
readonly FILE_TIMESTAMP=$file_timestamp

// old code which I am using to get the full path of the latest folder in each machine
dir1=$(ssh -o "StrictHostKeyChecking no" david@${MACHINES[0]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)
dir2=$(ssh -o "StrictHostKeyChecking no" david@${MACHINES[1]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)

echo $dir1
echo $dir2

// not sure what should I do here?
dir3=$MAPPED_LOCATION/$FILE_TIMESTAMP

Em cada máquina (machineB and machineC) , haverá uma pasta neste formato YYYYMMDD dentro desta pasta MAPPED_LOCATION .

Agora o que estou tentando fazer é - estou passando file_timestamp do script python que estará neste formulário YYYYMMDD então agora eu preciso verificar se esta pasta está lá dentro da pasta MAPPED_LOCATION ou não em cada máquina.

Se estiver lá, imprima o caminho completo dessa pasta para cada máquina, caso contrário, saia do shell script com status diferente de zero. Se não estiver em nenhuma das máquinas, saio do shell script com uma mensagem de que esta pasta não está presente nesta máquina com status diferente de zero.

Não sei como posso fazer essa verificação no script de shell?

    
por SSH 11.04.2014 / 21:19

1 resposta

2
d="${MAPPED_LOCATION}/$(python_script)" 
[ -d "$d" ] && echo "$d" || exit 1
    
por 11.04.2014 / 21:40