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