Execute um arquivo .sh dependendo do conteúdo de um arquivo

0

Eu quero criar um arquivo .sh que precisa dar uma olhada no conteúdo de um arquivo diferente, neste caso, o arquivo de configuração postgresql.

Existe alguma maneira de executar um comando dentro do arquivo .sh dependendo do conteúdo de um arquivo diferente?

    
por user25861 06.07.2015 / 11:11

2 respostas

2

Claro que você pode fazê-lo, no seu script você pode grep para alguma palavra-chave única a partir do conteúdo do arquivo, se o conteúdo existir, então ok, saia.

grep -F "$word1" "$filename"

Se a saída for bem sucedida, então o script não será executado

    
por Maythux 06.07.2015 / 11:21
0

Crie um novo arquivo na mesma pasta yes_or_no

nano yes_or_no

com o conteúdo abaixo

#!/bin/bash
search_for="foo"
grep -q "$search_for" "$1"
if [ $? -eq 0 ]; then
    echo "The file \"$1\" contains \"$search_for\""
    ./give_a_yes
else
    echo "The file \"$1\" doesn't contains \"$search_for\""
fi

Torne o script executável

chmod +x yes_or_no

Crie um novo arquivo na mesma pasta give_a_yes

nano give_a_yes

com o conteúdo abaixo

#!/bin/bash
echo "\"$0\" executed"

Torne o arquivo executável:

chmod +x give_a_yes

Crie alguns arquivos de dados:

echo "foo" > foo
echo "bar" > bar

Inicie o script

$ ./yes_or_no bar
The file "bar" doesn't contains "foo"

$ ./yes_or_no foo
The file "foo" contains "foo"
"./give_a_yes" executed
    
por A.B. 06.07.2015 / 13:41