Я намагаюся написати сценарій, який повинен перевірити, чи існує файл. У консолі пишу
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
спробуй
—
кев
#!/bin/bash
привіт кеве, я теж це зрозумів. Я щойно оновив своє запитання. Я витратив надто багато часу на це, але радий, що міг це вирішити. Дякую за вашу відповідь. Це справді рішення проблеми.
—
Buzu
@Kev Будь ласка, опублікуйте це як відповідь
—
slhck
Buzu, @Kev - якщо ви знайдете відповідь, опублікуйте її як відповідь нижче , не редагуйте питання.
—
користувач1686