PS1-やBASH-の「-」の意味が分かりません。(解決済)
Q&A
Closed
質問
debian系の /etc/profile です。
PS1-やBASH-の「-」の意味が分かりません。
-が何をチェックしているのか分からないので教えて下さい。
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
試したこと
~ $ echo $hoge
boke-value
~ $ echo ${hoge}
boke-value
~ $ echo ${hoge#baka-}
boke-value
~ $ echo ${hoge#boke-}
value
~ $ echo ${hoge#*-}
value
~ $ echo $BASH_VERSION
4.4.23(1)-release
~ $ echo ${BASH_VERSION-}
4.4.23(1)-release
~ $ echo ${BASH_VERSION}
4.4.23(1)-release
参考リンク
bashで変数から部分文字列を取得する - Qiita
https://qiita.com/koara-local/items/04d3efd1031ea62d8db5
【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita
https://qiita.com/t_nakayama0714/items/80b4c94de43643f4be51
bash の初期化ファイル .profile, .bashrc, .bash_profile の使い分けと管理方針 - A Memorandum
https://blog1.mammb.com/entry/2019/12/01/090000