나는이 if
중 하나 2 개 파일로 존재하는 경우 그들이 그것을 일치 에코해야 존재하지 않는 경우, 확인하는 내 bash는 스크립트.
내가 가진 코드 :
if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then
echo "match"
fi
그러나 이것은 어떤 이유로 작동하지 않는 것 같습니다.
이 두 파일이 존재하지 않는다고 110 % 확신합니다. 오류가 발생하지 않습니다. 입력하지 않습니다 if
.
스크립팅을 처음 사용하므로 무엇이 잘못 될지 잘 모르겠습니다.
[[ -f xxx ]]
xxx가 존재 하고 일반 파일 (또는 일반 파일에 대한 심볼릭 링크) 이면 true를 반환합니다 . 존재하지 않거나 존재하는지 여부를 알 수 없지만 일반 파일 (디렉토리, 파이프, 장치, 소켓 ...)이 아니거나 심볼릭 링크가 아닌 경우 false를 반환합니다. 존재하지 않는 파일인지 또는 존재하지 않는지 또는 일반 파일이 아닌지를 알 수없는 파일에 [[ -e $file ]] || [[ -L $file ]]
대해서는 존재 테스트에 더 가깝습니다. ls -d -- "$file" > /dev/null 2>&1
더 가깝습니다. 그리고 원칙적으로 이런 종류의 테스트는 경쟁 조건으로 이어집니다. 다른 방법이있을 수도 있습니다.
[[ ! -f /etc/.../... ]]; echo $?
각각.