编辑:这不是一个副本,至少对于引用的问题不是。这个问题是指使用“--”停止从命令行进一步处理选项。我的问题与声明内置的输出有关。
我不小心
declare
d脚本中的变量
-l
和
-u
但是没有错误。
declare -lu myvar='TestString'
echo "myvar: $myvar"
哪个给了
myvar: TestString
如果我加上
declare -p
我有双破折号的申报单(
--
)
declare -lu myvar='TestString'
declare -p myvar
echo "myvar: $myvar"
哪个给了
declare -- myvar="TestString"
myvar: TestString
出于好奇,我跑了
declare -p | grep 'declare --'
从命令行中得到了相当多的匹配变量。有些来自我的设置,但有些来自bash本身。
declare -- BASH="/bin/bash"
declare -- BASH_ARGV0
declare -- BASH_COMMAND
declare -- BASH_SUBSHELL
declare -- BASH_VERSION="5.0.7(1)-release"
declare -- COLUMNS="211"
declare -- COMPLETION_UTIL=" pmbin pmcat pmchkver pmcore pmcost pmdoc pmedit pminfo pmless pmlines pmlist pmman pmpath pmstripper pmuninst pmversion pmxs podpath"
declare -- COMP_WORDBREAKS
declare -- CU="podpath"
declare -- DZIL=""
declare -- EPOCHREALTIME
declare -- EPOCHSECONDS
declare -- HISTCONTROL="erasedups:ignoreboth"
declare -- HISTFILE="/home/harleypig/.bash_history"
declare -- HISTFILESIZE="100000"
declare -- HISTIGNORE="&:[ ]*:exit:ls:bg:fg:history:clear"
declare -- HISTSIZE="500000"
declare -- HISTTIMEFORMAT="%F %T "
declare -- HOSTNAME="sweetums"
declare -- HOSTTYPE="x86_64"
declare -- IFS="
declare -- LINES="55"
declare -- MACHTYPE="x86_64-pc-linux-gnu"
declare -- OPTERR="1"
declare -- OSTYPE="linux-gnu"
declare -- POD=""
declare -- PROMPT_COMMAND="_update_prompt"
declare -- PS1="\\[\\001\\002\\001\\002\\]\\n\\[\\001\\002\\001\\002\\]REBOOT - Current: 5.0.13-arch1-1-ARCH Latest: 5.1.2-arch1-1-ARCH\\nPacman Last Updated: 23h 20m\\n\\001\\002\\001\\002\\u\\[\\001\\002\\001\\002\\]@\\001\\002\\001\\002\\h\\[\\001\\002\\001\\002\\]: /home/harleypig\\[\\001\\002\\001\\002\\]\\n\\[\\001\\002\\001\\002\\001\\002:)\\001\\002\\001\\002\\] \$ "
declare -- PS2="> "
declare -- PS4="+ "
declare -- SECONDS
declare -- _="vim"
declare -- _backup_glob="@(#*#|*@(~|.@(bak|orig|rej|swp|dpkg*|rpm@(orig|new|save))))"
declare -- circled_digits="âªâ â¡â¢â£â¤â¥â¦â§â¨â©âªâ«â¬ââ®â¯â°â±â²â³"
declare -- color_off="\\[\\001\\002\\001\\002\\]"
declare -- exit_status="\\[\\001\\002\\001\\002\\001\\002:)\\001\\002\\001\\002\\]"
declare -- filename="/tmp/bash-template-D8fdfMZ"
declare -- hostname="\\001\\002\\001\\002\\h\\[\\001\\002\\001\\002\\]"
declare -- lesspipe=""
declare -- nvm_init="/usr/share/nvm/init-nvm.sh"
declare -- pacman_status="Pacman Last Updated: 23h 20m"
declare -- prompt_color="\\[\\001\\002\\001\\002\\]"
declare -- system_reboot="REBOOT - Current: 5.0.13-arch1-1-ARCH Latest: 5.1.2-arch1-1-ARCH"
declare -- user="\\001\\002\\001\\002\\u\\[\\001\\002\\001\\002\\]"
declare -- vim_bundles=".vim/bundle"
那么,在declare输出中“--”是什么意思?
我已经阅读了很多次bash手册,但是我不知道这个解释可能在哪里。