$ 1 означает …? без ввода?

У меня есть одна программа, которая начинается с этой строки. Что это значит? Из-за знака доллара у меня проблемы с поиском.

Как получилось $ 1 без каких-либо параметров? И что это значит -d здесь?

if [ -d $1 ]; then 

И получается ли полуколока, даже если if-условие даже не начинается? Я думал, что двоеточие приходит только в конце заявления или в конце состояния, как

  if () { }; 

One Solution collect form web for “$ 1 означает …? без ввода?”

Точка с запятой требуется, потому что без указания того, где заканчивается этот контекст (через точку с запятой, новую строку и т. Д.), if не может знать, где заканчивается условие, и начинается условный блок. Для сравнения:

 $ if echo then foo then; then :; fi then foo then $ if echo then; then :; fi then 

-d – это тест, проверяющий, является ли следующий аргумент каталогом. Из help test (потому что test эквивалентен [ ):

 -d FILE True if file is a directory. 

Например:

 $ mkdir foo $ if [ -d foo ]; then > echo foo is a dir > fi foo is a dir 

$1 – первый аргумент, переданный вашей программе. Например:

 $ cat > script << 'EOF' > #!/bin/sh > echo "$1" > EOF $ chmod +x script $ ./script foo foo 

В стороне, вы должны процитировать здесь $1 , потому что иначе он может расширяться на несколько аргументов, что приводит к синтаксической ошибке из [ :

 $ dir="foo bar" $ [ -d $dir ] sh: 2: [: foo: unexpected operator $ [ -d "$dir" ] $ 
  • рекурсивный 'ls', дающий абсолютные имена файлов
  • Как заменить «базовую системную оболочку» на IPython?
  • Неожиданный конец файла внутри моего сценария bash
  • Как я * надежно * и * просто * получить текущее имя интерпретатора оболочки?
  • Как использовать пароль в сценариях оболочки
  • Можно ли скопировать расширение в команде `at`?
  • Что значит ;; делать в sh?
  • Отслеживать <defunct> для целей отладки?
  • Ошибка «Соединение с узлом закрыта» при использовании псевдотерминала
  • Синтаксическая ошибка около неожиданного токена `('
  • Замена Bash-процесса не работает как «root» на OS X
  • Interesting Posts

    Как я могу предупредить о завершении длинной задачи над ssh?

    Сценарий оболочки для прокрутки через папку и файлы списка

    Загрузите установку DSL на компьютер без поддержки загрузки BIOS

    Сгладить скрипт оболочки (включая сценарии с исходными текстами) и удалить неиспользуемые функции

    Альтернативы не работают хорошо для установки Java на Centos 6.4

    переопределение параметров для конфигурации клиента openssh

    Де-обфускация изображения со статистической информацией?

    Установить уровень запуска при загрузке через аппаратный (аналоговый) вход, переключатель и т. Д.?

    Как определить размер изображения из командной строки?

    Могу ли я выбрать, на каком из двух экранов вы сможете увеличить видео на YouTube?

    AIX: показать видеокарту

    Пользовательский приоритет GPU

    Выяснение, с какими параметрами запускалась программа

    Buildroot игнорирует файлы конфигурации – создание неправильного ядра

    запуск экрана очищает буфер обмена x11

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