Linux Bash команда expr index - PullRequest
       0

Linux Bash команда expr index

0 голосов
/ 21 января 2020

Я смотрю, как index работает в этом случае, я знаю, как expr нормально работает, но не в сочетании с index.

Например:

X=“Hello World”, S=“acegiklnor”
echo 'expr index $S "$X"'

Каков выход из этого примера? И как это здесь работает?

1 Ответ

0 голосов
/ 21 января 2020

ПРИМЕЧАНИЕ: в приведенных ниже примерах я использую один ведущий $ для обозначения приглашения оболочки. Выводится любая строка, которая не начинается с $.

Ваш первоначальный пример содержит ряд проблем, не связанных со значением подкоманды index в GNU expr, я собираюсь пропустить их и просто сосредоточиться на сам индекс. Как указывает @chepner, другие реализации expr не имеют функции index, например, в OS X.

Если вы прочитаете сообщение справки для expr, вы увидите index операция.

$ expr --help | grep index
  index STRING CHARS         index in STRING where any CHARS is found, or 0

Используя ваш пример

$ X="Hello World"
$ S="acegiklnor"

$ expr index "$X" "$S"
2

2 - это основанный на 1 индекс буквы e в Hello World.

Если вы спросили для буквы, которой нет в строке, результат будет нулевым (и состояние выхода expr будет 1, что указывает на неудачный выход).

$ expr index "$X" "z"
0

Результат тот же если второй аргумент является пустой строкой.

$ expr index "$X" ""
0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...