mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-12 16:53:37 +08:00
02d82dcf85
Adds synopses for those commands missing them. Moves all synopsis sections to code blocks. This improves the appearance, although highlighting as fish code may not be the ideal appearance.
65 lines
1.3 KiB
ReStructuredText
65 lines
1.3 KiB
ReStructuredText
.. _cmd-contains:
|
|
|
|
contains - test if a word is present in a list
|
|
==============================================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
::
|
|
|
|
contains [OPTIONS] KEY [VALUES...]
|
|
|
|
Description
|
|
-----------
|
|
|
|
``contains`` tests whether the set ``VALUES`` contains the string ``KEY``. If so, ``contains`` exits with status 0; if not, it exits with status 1.
|
|
|
|
The following options are available:
|
|
|
|
- ``-i`` or ``--index`` print the word index
|
|
|
|
Note that, like GNU tools and most of fish's builtins, ``contains`` interprets all arguments starting with a ``-`` as options to contains, until it reaches an argument that is ``--`` (two dashes). See the examples below.
|
|
|
|
Example
|
|
-------
|
|
|
|
If $animals is a list of animals, the following will test if it contains a cat:
|
|
|
|
|
|
|
|
::
|
|
|
|
if contains cat $animals
|
|
echo Your animal list is evil!
|
|
end
|
|
|
|
|
|
This code will add some directories to $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 ``hasargs`` was run 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.
|