- 投稿日:
確認環境
Env | Ver |
---|---|
zsh | zsh 5.8 (x86_64-pc-msys) |
サンプルコード
例として.zshrc
に書くものとする(別に分割しても構わない)
setopt PROMPT_SUBST
する- この設定によりパラメータ展開、コマンド置換、および算術展開がプロンプトで実行される
- 展開したい関数をシングルクォートで囲み文字列結合する
- 注意点
- 変数に代入している場合評価されない
- 関数はシングルクォートで囲まないと評価されない
- 注意点
# baz は echo が入った関数
PROMPT "foobar"'$(baz)'
# 以下の 2 つは期待通り動作しない
PROMPT "foobar"$(baz)
PROMPT $(baz)
- 投稿日:
MSYS2のzshで.zsh
を叩いたときに次のエラーが出るときの対策
./test.zsh: 2 行: read: -q: 無効なオプションです
read: 使用法: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
動かないシェルスクリプトのサンプル
- 但しこれは動く
echo "yes or no (y/N): "; if read -q; then; echo hello; else echo abort; fi
echo 'yes or no (y/N): '
if read -q; then
echo y
else
echo n
fi
解決方法
- 次のようにshebangを入れてやる
- 多分shが呼ばれているのだと思う
#!/bin/zsh
echo 'yes or no (y/N): '
if read -q; then
echo y
else
echo n
fi