.bashrc
端末幅が80文字以上の場合、長いプロンプトが表示されるように設定しました。それ以外の場合は、ダウングレードされた小さなプロンプトが表示されます。
私はif
これを達成するために次の文を使用します。
dp_smaller_than=80
if [ $COLUMNS -lt $dp_smaller_than ]
then
PROMPT_COMMAND="degr_prompt"
else
PROMPT_COMMAND="full_prompt"
fi
このステートメントの前に1つ以上のコマンドを入力した場合にのみ機能します。sleep 0
それ以外の場合は、次のエラーが表示されます。
[: -lt: unary operator expected
メモ:degr_prompt
ファイルの先頭に機能を定義しました。full_prompt
答え1
COLUMNS
変数はbashによって設定されますupon receipt of a SIGWINCH.
(Shell Variables
セクションを参照man bash
)。これは環境変数ではないため、スクリプトに設定されません。自分を見てください:
$ export COLUMNS=$COLUMNS
$ ./your-script.sh
今大丈夫です。COLUMNS
スクリプトから値を取得する必要があります。たとえば、次のようになりますtput
。
$ tput cols
186
答え2
COLUMNS
何らかの方法で設定されていません.bashrc
。
次の列を入手してくださいtput cols
。
dp_smaller_than=80
if [ $(tput cols) -lt $dp_smaller_than ]
then
PROMPT_COMMAND="degr_prompt"
else
PROMPT_COMMAND="full_prompt"
fi