我似乎无法得到短跑查看 $HOME/.profile:
pedz@Peace:s001 ~[S:hatred] % docker exec -it hatred-web-1 dash -i
# cat $HOME/.profile
PROOF=true; export PROOF
PATH=/hatred/bin:$PATH; export PATH
# env | sort
BUNDLE_APP_CONFIG=/usr/local/bundle
BUNDLE_SILENCE_ROOT_WARNING=1
GEM_HOME=/usr/local/bundle
HOME=/root
HOSTNAME=hatred
LANG=C.UTF-8
PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/hatred
RUBY_DOWNLOAD_SHA256=ca10d017f8a1b6d247556622c841fc56b90c03b1803f87198da1e4fd3ec3bf2a
RUBY_MAJOR=3.1
RUBY_VERSION=3.1.2
TERM=xterm
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 14:28 ? 00:00:01 puma 5.6.5 (tcp://0.0.0.0:3000) [hatred]
root 152 0 0 14:54 pts/0 00:00:00 dash -i
root 161 152 0 14:54 pts/0 00:00:00 ps -ef
# set
BUNDLE_APP_CONFIG='/usr/local/bundle'
BUNDLE_SILENCE_ROOT_WARNING='1'
GEM_HOME='/usr/local/bundle'
HOME='/root'
HOSTNAME='hatred'
IFS='
'
LANG='C.UTF-8'
OPTIND='1'
PATH='/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='0'
PS1='# '
PS2='> '
PS4='+ '
PWD='/hatred'
RUBY_DOWNLOAD_SHA256='ca10d017f8a1b6d247556622c841fc56b90c03b1803f87198da1e4fd3ec3bf2a'
RUBY_MAJOR='3.1'
RUBY_VERSION='3.1.2'
TERM='xterm'
_='-ef'
# lsb_release -c
Codename: bullseye
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
#
请注意,PROOF 不在 env 的输出中,并且 PATH 没有/hatred/bin
添加到它前面。
答案1
我将此问题发送到 Debian 用户邮件列表。有人向我指出,该文本做正确描述行为。以下是一些让我绊倒的事情:
文本显示“第一次启动时,shell 检查参数 0,如果它以短划线‘-’开头,则 shell还被认为是登录 shell。”(重点是我添加的)。
我误解了原因also
。事实上,目前还不清楚它为什么在那里。
对我来说,如果这句话开始一个新段落会更清楚,因为主题已从交互式 shell 更改为登录 shell。省略 会更清楚,并且在那时also
提及该选项会更清楚。-l
所有这些都是说,正如评论所指出的,要阅读$HOME/.profile
,您需要指定-l
选项或使 $0 以破折号开头。