Почему sh отображает ошибку, если bash не работает?

Почему следующий скрипт отображает сообщение «неожиданного оператора» и не работает при запуске с SH, но не с BASH.

!/bin/sh if [ $UID -ne 0 ] then echo "You must be root." exit 1 else echo "Open sesame." exit 0 fi 

One Solution collect form web for “Почему sh отображает ошибку, если bash не работает?”

Не все оболочки определяют переменную UID . Это только функция bash и zsh. В других оболочках переменная UID не определена, поэтому ваша тестовая команда расширяется до [ -ne 0 ] которая является синтаксической ошибкой.

Портативный способ получения идентификатора пользователя – с помощью утилиты id .

 if [ "$(id -u)" -ne 0 ]; then … 
  • Можно ли заменить «затем» на скобки?
  • Учитывая массив целых чисел, возвращайте индексы двух чисел так, чтобы они добавляли к определенной цели
  • Как я могу либо зашифровать, либо сделать мой сценарий оболочки нечитаемым?
  • не может определить ошибку в сценарии оболочки неожиданный оператор
  • Напишите сценарий для создания пользователей с заранее определенными паролями
  • Сценарий оболочки для создания дублированного вывода с шагом
  • Получение количества строк и сохранение в результирующем наборе
  • tr -d не работает с возвратом каретки
  • файл сценария оболочки сценария
  • В чем смысл ## * в сценарии оболочки?
  • Bash: Имея 2 файла, как я могу проверить, появляется ли второе имя в первом случае во втором
  • Interesting Posts

    Управляйте только частью конфигурационного файла с помощью Puppet (многострочная файловая строка)

    Почему «grep -q» потребляет весь входной файл?

    Как отключить службу nfs в ядре?

    Исключение отдельных строк от перенаправления

    Как сменный текст отображается в терминале?

    Почему «интерактивный режим» не корректно отображает мои кодированные имена UTF-8?

    Переустановка только пакетов с отсутствующими или поврежденными файлами в нерабочей системе?

    Unix решает о типе файла, ищущего магические файлы при фиксированных смещениях. Как он может сделать это надежно?

    Разрешить setuid для сценариев оболочки

    vboxpci: IOMMU не найден (не зарегистрировано)

    Bash – запуск сценария bash из скрипта ksh

    Управление пакетами без необходимости разрешения root

    Плагин vim netrw фактически отображает содержимое файла каталога?

    Как устранить ошибку SSL-сертификата при установке PIP?

    Создание общедоступного каталога документов для обычного пользователя

    Linux и Unix - лучшая ОС в мире.