Tôi đang cố gắng viết một tập lệnh phải kiểm tra xem một tập tin có tồn tại không. Trong bảng điều khiển tôi viết
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
va tôi lây
not mod
nhưng khi tôi viết một kịch bản để làm điều tương tự:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
và sau đó thực thi kịch bản, tôi nhận được điều này:
./ex.sh: 2: [[: not found
mod
Tôi đã lưu tập lệnh trên thư mục hiện tại và đặt tên là ex.sh, sau đó tôi chắc chắn rằng nó có thể thực thi được. Để gọi kịch bản tôi làm điều này:
./ex.sh
Tại sao tôi nhận được vấn đề này? Tôi đã thử nhiều thứ:
if [ -a /home ...
và
if test -a /home ...
Cả hai trở về
13: -a: unexpected operator
#!/bin/bash