количество токенов в переменной bash

Как я могу узнать количество токенов в переменной bash (токены, разделенные пробелами) - или, по крайней мере, если это один или их больше.

25
задан mklement0 2 February 2014 в 04:49
поделиться

4 ответа

$ # расширение скажет Вам число элементов в переменной / массив. Если Вы работаете с версией удара, больше, чем приблизительно 2.05, Вы можете:

VAR='some string with words'
VAR=( $VAR )
echo ${#VAR[@]}

Это эффективно разделяет строку на массив вдоль пробела (который является разделителем по умолчанию), и затем считает членов массива.

РЕДАКТИРОВАНИЕ:

, Конечно, это переделывает переменную как массив. Если Вы не хотите это, используйте другое имя переменной или переделайте переменную назад в строку:

VAR="${VAR[*]}"
31
ответ дан guns 2 February 2014 в 04:49
поделиться
  • 1
    1.0 (a). Вы делаете правильное замечание все же. Если бы Вы управляете поставщиком услуг также, я предложил бы выбрать OAuth 2, так как он упрощает многие вещи, с которыми борются разработчики и конструкторы протокола. – Matthias 9 June 2011 в 18:30

Не уверенный, если это точно, что Вы имели в виду, но:

$# = Количество аргументов передало сценарию

удара Иначе, Вы могли бы искать что-то как man wc

0
ответ дан Ben S 2 February 2014 в 04:49
поделиться
  • 1
    можно ли отправить пример того, как аутентифицировать в пользовательском приложении Google App Engine? Я боролся с этим в течение 2 дней теперь. Ваша библиотека doesn' t, кажется, поддерживают 3 URL обратного вызова, OAuthGetRequestToken, OAuthAuthorizeToken и ' OAuthGetAccessToken'? –  19 May 2013 в 15:27
set VAR='hello world'
echo $VAR | wc -w

вот то, как можно проверить.

if [ `echo $VAR | wc -w` -gt 1 ] 
then
    echo "Hello"
fi
9
ответ дан Mykola Golubyev 2 February 2014 в 04:49
поделиться
  • 1
    Почему это? Почему ' secret' секрет от пользователя. Это не отличается от session_id, который хранится в cookie. Просто, потому что это называют ' secret' не делает его секретом от всех. – Mark 7 August 2012 в 12:43

Простой метод:

$ VAR="a b c d"
$ set $VAR
$ echo $#
4
0
ответ дан Eugene Morozov 2 February 2014 в 04:49
поделиться
  • 1
    Выбор разделителя (или;) может быть зависимым от локали. I' ve никогда не испытывал затруднения при открытии разделенного от запятой файла. – pavium 5 September 2009 в 17:31
Другие вопросы по тегам:

Похожие вопросы: