/ / Параметри не працюють всередині скрипта zsh - zsh, параметри

Параметри не працюють всередині скрипта zsh - zsh, параметри

Це, здається, не є загальною проблемою, але я не можу отримати параметри ZSH для роботи в скрипті ZSH, наприклад autocd:

#!/usr/bin/env zsh

setopt autocd
my_directory

Я просто отримую команду "my_directory не існує",що відбувається, коли цей параметр не встановлений. Той факт, що я не отримую багато результатів пошуку для налаштування параметрів всередині скриптів (і це питання, схоже, є унікальним), говорить про те, що мені не вистачає важливої ​​частини інформації, яку я маю не бачив ще.

Дякую!

Відповіді:

0 для відповіді № 1

Дивлячись на вихідний код (від останнього git версія, HEAD = 36b8f83 від 7 листопада 2014 р.), у Src / exec.c, я бачу це в рядку 2854:

    char trycd = (isset(AUTOCD) && isset(SHINSTDIN) &&
(!redir || empty(redir)) && args && !empty(args) &&
!nextnode(firstnode(args)) && *(char *)peekfirst(args));

З цього виявляється (хоча і не документоване, що я можу знайти), що SHINSTDIN Варіант також повинен бути встановлений для AUTOCD працювати. Однак ви не можете просто включити цей параметр у скрипті (додавши -s наприклад, для Shebang), тому що оболонка, що запускає ваш скрипт, не буде читати команди з сценарію.

Я не знаю чи запобігання AUTOCD від роботи без SHINSTDIN це помилка, або якщо є недокументована причина, чому вона повинна бути правдою; це буде хорошим питанням для списку розсилки zsh-workers.