From 51ab1f5d350ad1501c6ca0e16d5665eac85e1981 Mon Sep 17 00:00:00 2001 From: PowerUser64 Date: Wed, 6 May 2026 19:16:48 -0700 Subject: [PATCH] add example of how to set default variable values Closes #12720 --- doc_src/fish_for_bash_users.rst | 9 +++++++++ share/completions/help.fish | 2 ++ share/help_sections | 1 + 3 files changed, 12 insertions(+) diff --git a/doc_src/fish_for_bash_users.rst b/doc_src/fish_for_bash_users.rst index ce440bc01..3104ba670 100644 --- a/doc_src/fish_for_bash_users.rst +++ b/doc_src/fish_for_bash_users.rst @@ -99,6 +99,15 @@ See :ref:`Shell variables ` for more. .. _bash-globs: +Variable defaults (``${my_variable:-"default value"}``) +------------------------------------------------------- + +Fish doesn't have ``${my_variable:-fallback}`` for providing default values to unset variables. Instead, you can set default values by checking whether the variable has been set yet:: + + # Ensure XDG_CONFIG_HOME is set or use a default value + set -q XDG_CONFIG_HOME || set XDG_CONFIG_HOME $HOME/.config + # now use XDG_CONFIG_HOME as normal + Wildcards (globs) ----------------- diff --git a/share/completions/help.fish b/share/completions/help.fish index fbb0765de..8143813d4 100644 --- a/share/completions/help.fish +++ b/share/completions/help.fish @@ -157,6 +157,8 @@ function __fish_help_describe -a help_item return case fish_for_bash_users#test-test return + case fish_for_bash_users#variable-defaults-my-variable-default-value + return case fish_for_bash_users#variables return case fish_for_bash_users#wildcards-globs diff --git a/share/help_sections b/share/help_sections index 078b1d040..1f9c81328 100644 --- a/share/help_sections +++ b/share/help_sections @@ -194,6 +194,7 @@ fish_for_bash_users#special-variables fish_for_bash_users#string-manipulation fish_for_bash_users#subshells fish_for_bash_users#test-test +fish_for_bash_users#variable-defaults-my-variable-default-value fish_for_bash_users#variables fish_for_bash_users#wildcards-globs index