/ /オプションはzshスクリプト内では機能しません - zsh、options

zshスクリプト内でオプションが機能しない - zsh、options

これは一般的な問題ではないようですが、ZSHスクリプト内でZSHオプションを使用することはできません。 autocd

#!/usr/bin/env zsh

setopt autocd
my_directory

私はちょうど "コマンドmy_directoryは存在しません"を取得するこのオプションが設定されていない場合に起こることは、スクリプト内でオプションを設定するための多くの検索結果を得ることができないということです(この質問は一意であると思われます)。まだ見ていない。

ありがとう!

回答:

回答№1は0

ソースコードを見る(最新の git バージョン、2014年11月7日のHEAD = 36b8f83)、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 たとえば、スクリプトを実行しているシェルはスクリプトからのコマンドを読み取ることができないためです)。

私は予防するかどうか分からない AUTOCD なしで働くことから SHINSTDIN バグである、またはなぜ文書化されていない理由があるのか​​、それは本当でなければならない。これはzsh-workersメーリングリストにとっては良い質問です。