mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-23 14:40:37 +08:00
ad4530acd3
This matches the style in man(1) (except that we use the … ligature). A previous iteration did the reverse (never use a space before the ellipsis). That would be a smaller change.
60 lines
1.5 KiB
ReStructuredText
60 lines
1.5 KiB
ReStructuredText
.. _cmd-string-length:
|
|
|
|
string-length - print string lengths
|
|
====================================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
.. BEGIN SYNOPSIS
|
|
|
|
``string`` length [**-q** | **--quiet**] [*STRING* ...]
|
|
|
|
.. END SYNOPSIS
|
|
|
|
Description
|
|
-----------
|
|
|
|
.. BEGIN DESCRIPTION
|
|
|
|
``string length`` reports the length of each string argument in characters. Exit status: 0 if at least one non-empty STRING was given, or 1 otherwise.
|
|
|
|
With ``-V`` or ``--visible``, it uses the visible width of the arguments. That means it will discount escape sequences fish knows about, account for $fish_emoji_width and $fish_ambiguous_width. It will also count each line (separated by ``\n``) on its own, and with a carriage return (``\r``) count only the widest stretch on a line. The intent is to measure the number of columns the STRING would occupy in the current terminal.
|
|
|
|
.. END DESCRIPTION
|
|
|
|
Examples
|
|
--------
|
|
|
|
.. BEGIN EXAMPLES
|
|
|
|
::
|
|
|
|
>_ string length 'hello, world'
|
|
12
|
|
|
|
>_ set str foo
|
|
>_ string length -q $str; echo $status
|
|
0
|
|
# Equivalent to test -n "$str"
|
|
|
|
>_ string length --visible (set_color red)foobar
|
|
# the set_color is discounted, so this is the width of "foobar"
|
|
6
|
|
|
|
>_ string length --visible 🐟🐟🐟🐟
|
|
# depending on $fish_emoji_width, this is either 4 or 8
|
|
# in new terminals it should be
|
|
8
|
|
|
|
>_ string length --visible abcdef\r123
|
|
# this displays as "123def", so the width is 6
|
|
6
|
|
|
|
>_ string length --visible a\nbc
|
|
# counts "a" and "bc" as separate lines, so it prints width for each
|
|
1
|
|
2
|
|
|
|
.. END EXAMPLES
|