Se você quiser ou , deseja OR
, não AND
.
if [[ ! -f /etc/benchmarking/code ]] || [[ ! -f /etc/benchmarking/code.class ]]; then
echo "match"
fi
- Isso corresponderá se um ou os dois arquivos estiverem faltando.
- Seu código só imprimirá
match
se ambos não existirem.
Mas , você disse:
I am 110% sure that these 2 files do not exist. I don't get any errors, it just doesn't enter the if.
Assim, sua declaração se contradiz. Pelo menos um desses arquivos deve existir, se você estiver executando esse código.
Se você quiser ver como sua instrução if
está avaliando, execute-a com -x
.
#!/bin/bash -x
if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then
echo "match"
fi
Então você verá a execução.
$ ./test.sh
+ [[ ! -f /etc/benchmarking/code ]]
+ [[ ! -f /etc/benchmarking/code.class ]]
+ echo match
match
$