fish-shell/doc_src/cmds/contains.rst
Johannes Altmanninger 2a98b7a593 docs synopsis: make all placeholder arguments uppercase
man(1) uses lowercase placeholders but we usually don't.  Additionally,
the new synopsis autoformatting only recognizes placeholders if they
are uppercase. Use uppercase for all placeholders.
2022-01-19 22:56:41 +08:00

63 lines
1.3 KiB
ReStructuredText

.. _cmd-contains:
contains - test if a word is present in a list
==============================================
Synopsis
--------
.. synopsis::
contains [OPTIONS] KEY [VALUES ...]
Description
-----------
``contains`` tests whether the set *VALUES* contains the string *KEY*.
If so, ``contains`` exits with code 0; if not, it exits with code 1.
The following options are available:
- **-i** or **--index** print the word index
Note that ``contains`` interprets all arguments starting with a **-** as an option to ``contains``, until an **--** argument is reached.
See the examples below.
Example
-------
If *animals* is a list of animals, the following will test if *animals* contains "cat":
::
if contains cat $animals
echo Your animal list is evil!
end
This code will add some directories to :envvar:`PATH` if they aren't yet included:
::
for i in ~/bin /usr/local/bin
if not contains $i $PATH
set PATH $PATH $i
end
end
While this will check if function ``hasargs`` is being ran with the **-q** option:
::
function hasargs
if contains -- -q $argv
echo '$argv contains a -q option'
end
end
The **--** here stops ``contains`` from treating **-q** to an option to itself.
Instead it treats it as a normal string to check.