I’m sure some of you have absolute monstrosities of sigils (I know I do, in my .zshrc alone). Post them without context, and try and guess what other users’s lines are. If you want to provide context or guess, use the markdown editor to spoiler-tag your guesses and explanations!
spoiler
The given shell script is written in the Zsh shell syntax. It initializes a local array variable
d
with the expansion of a string. Let’s break it down step by step:local d=
: This line declares a local variabled
. Thelocal
keyword is used to define variables with local scope, meaning they are only accessible within the current scope, such as within a function or a block of code."${(%):-%~}"
: This part of the script performs string expansion and substitution to populate the arrayd
.%~
is a special parameter expansion in Zsh that expands to the current working directory (tilde expansion).(%):
is another parameter expansion flag that performs splitting and globbing on the value obtained from%~
. It splits the resulting string into separate elements based on the/
delimiter and performs globbing (filename expansion) on each element.For example, if the current working directory is
/path/to/some/directory
, then%~
expands to/path/to/some/directory
, and(%):
splits it into individual components:path
,to
,some
, anddirectory
. If there are any glob patterns present, such as*
or?
, they would be expanded as well.("${(@s[/])${(%):-%~}}")
: This part surrounds the expanded string with parentheses to create an array and stores it in the variabled
. The(@s[/])
syntax is an array flag in Zsh that splits the resulting string into separate elements based on the/
delimiter. Each element represents a directory component obtained from the%~
expansion.In summary, this script initializes the local array variable
d
with the directories present in the current working directory’s path. Each directory is stored as a separate element in the arrayd
.It may have gotten some details wrong, but the summary is spot-on.
Corrections
(%)
enables prompt expansion.%~
is a string, which when prompt expanded, is $PWD with tilde expansion.