파일이 있는지 확인 해야하는 스크립트를 작성하려고합니다. 콘솔에서 내가 쓴
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
그리고 나는 얻는다
not mod
그러나 같은 일을하는 스크립트를 작성할 때 :
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
그런 다음 스크립트를 실행하면 다음과 같은 결과를 얻습니다.
./ex.sh: 2: [[: not found
mod
스크립트를 현재 디렉토리에 저장하고 이름을 ex.sh로 지정한 다음 실행 가능한지 확인했습니다. 스크립트를 호출하려면 다음을 수행하십시오.
./ex.sh
왜이 문제가 발생합니까? 나는 이미 많은 것을 시도했다.
if [ -a /home ...
과
if test -a /home ...
둘 다 돌아옵니다
13: -a: unexpected operator
나는 그것을 작동시킬 수 있었지만 그 때문에 첫 번째 줄을 제거해야했습니다 (#! / bin / sh) 왜 이런 일이 발생하는지 아십니까?
—
Buzu
시도
—
kev
#!/bin/bash
안녕하세요 케크, 나도 그 관계를했다. 방금 질문을 업데이트했습니다. 나는 이것에 너무 많은 시간을 보냈지 만 해결할 수있어서 기쁘다. 답변 주셔서 감사합니다. 실제로 문제에 대한 해결책입니다.
—
Buzu
@Kev 답변으로 게시하십시오
—
slhck
Buzu, @Kev-답변을 찾으면 아래 답변으로 게시하십시오 . 질문을 편집하지 마십시오.
—
user1686