bashのPS1を変えるシェルスクリプトを書いています。
しかし、なぜか連続でそのコマンドを使おうとすると動きません。
書いたスクリプトは以下のようなものです。
bash
1#!/bin/bash 2 3usage() { 4 echo "Usage: cmd [-o] [-s] [-h]" 5} 6 7while getopts osh opt 8do 9 case $opt in 10 o ) PS1='\h:\W \u$' ;; # original ps1 11 s ) PS1=' \W $ ' ;; # simple ps1 12 h ) usage ;; 13 ? ) usage ;; 14 esac 15done 16 17shift $((OPTIND - 1))
PS1
は環境変数なので、このスクリプトをそのまま実行しても動かないので、.bashrc
にalias cmd='source cmd'
を追加しました。
ターミナルを再起動し、cmd -o
などとすると、起動後の一度目は動く(PS1が変化する)のですが、cmd -s
と二度目以降に打っても動きません(PS1が変化しない)。
そこで、cmd
とすると、その後1度目のcmd -なんとか
は動きます。
原因を調べましたがわかりませんでした。
連続で実行しても動くようにしたいです。
どうすればいいのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/07 17:12