Соответствие POSIX программы cd?

Является ли globbing и расширение оболочки одним и тем же? Я изучаю C, создавая специальную оболочку, и я также изучаю POSIX. Теперь я задаюсь вопросом, соответствует ли соответствие POSIX тому, что cd - возвращает вас, и что ~ означает домашний каталог? Потому что не все оболочки могут это сделать, и я не знаю, требуется ли минимальное соответствие POSIX для команды cd. Реализация, которую я использую,

 int do_cd(int argc, const char **argv) { const char *path; if (argc > 1) { path = argv[1]; } else { path = getenv("HOME"); if (path == NULL) { fprintf(stderr, "No HOME environment variable\n"); return 1; } } if (chdir(path) < 0) { perror(path); return 1; } return 0; } 

3 Solutions collect form web for “Соответствие POSIX программы cd?”

Расширение Tilde является частью обработки команд оболочки, а не частью cd . cd видит уже расширенный путь в качестве аргумента.

POSIX требует, чтобы cd - был эквивалентен cd "$OLDPWD" && pwd . OLDPWD должен быть установлен cd если PWD существует во время запуска команды.

Расширение Тильды, по-видимому, стандартизировано (см. IEEE Std 1003.1, 2004 ), но является частью расширения оболочки, а не cd .

cd - также должен поддерживаться (см. IEEE Std 1003.1,2005 ).

Да, cd – задан POSIX: и это расширение tilda (все, что требуется, это немного веб-поиска ;-))

Если вы хотите быть совместимым с POSIX, ваш встроенный cd (технически не «программа») также потребуется выполнить парсинг параметров.

Что касается globbing vs shell, то, как я его понимаю, globbing – это частный случай расширения оболочки, который включает в себя определенный тип соответствия шаблонов.

  • Почему «$ i | sed "не работает?
  • Почему убийство процесса печатается в консоли
  • Параметр игнорируется при цитировании
  • Требуется специальная проверка сценария оболочки
  • Поиск среди содержимого большого количества текстовых файлов?
  • Есть ли способ, чтобы функция в моем сценарии bash автоматически запускалась при любой ошибке команды?
  • Как проверить, имеет ли файл уже строку с содержимым?
  • Помощь в командной строке Centos gawk
  • Как эхо-строку с несколькими пробелами в bash «нетронутой»?
  • посетить все каталоги под управлением версий
  • Команда не найдена в zsh
  • Interesting Posts

    Cifs монтирует общий доступ к Windows

    Как получить доступ для чтения и записи (безопасный) к файловой системе ext4, используемой второй ОС, запущенной из виртуального

    netstat, правильно указывая соединения

    Как различные файлы конфигурации определяют MANPATH на Дарвине?

    Ручное копирование MBR с одного диска на другой GPT-диск и настройка GRUB приводит к сбою загрузки

    Объем переменных при замещении процесса

    Как выглядят крупные компьютеры, на которых были подключены реальные терминалы?

    Замените все вхождения символа в переменной с помощью скрипта korn

    Повторное включение обновлений отключенных служб?

    Установка Linux перестает работать после нескольких перезагрузок

    Режим монитора wifi только для просмотра широковещательных пакетов

    Разница между nohup, disown и &

    Можно ли перевести linux salted sha512 hash в формат LDAP?

    Не удалось установить драйвер контроллера Ethernet Atheros AR8161 для CentOS 6

    Запуск Windows развращает разделы ext4

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