2016-01-06 3 views
0

Я здесь очень новый, поэтому прошу прощения за любые мои ошибки, и я сожалею о своей нехватке знаний (я только начинаю). Так вот, я делаю небольшой скрипт в Баше лития и у меня есть, если заявление, здесьЕсли утверждение идет иначе каждый раз - bash

#!/bin/bash 
something=$(whiptail --inputbox "Enter some text" 10 30 3>&1 1>&2 2>&3) 
if [ $something ?? 'you' ]; 
then 
    echo "$something" 
else 
    echo "nope" 
fi 

Конкретно то, что я хочу от него - я вхожу некоторое слово/предложение/все, чтобы Хлыстохвост , и если он содержит некоторые из ваших строк, то печатает его, но каждый раз он идет иначе; _ ;. Пожалуйста, помогите.

EDIT теперь он работает, спасибо, но мне нужно проверить, содержит ли строка слово.

if [[ $string =~ .*My.* ]] 

не похоже на работу

+2

Синтаксис '??' для меня новичок. – 4ae1e1

+1

Вы можете просто «if whiptail --inputbox ....», или вы можете проверить 'if [-z $ something], затем echo« nope », else ...' –

+1

Я подозреваю, что это может быть домашняя работа, но google для bash, если утверждения, вероятно, появятся в чем-то, что касается строки. –

ответ

0

Я не получить его на всех, потеряв надежду и поиск в Интернете я уже encontered на

#!/bin/bash 
OPTION=$(whiptail –title “Menu Dialog” –menu “Choose your option” 15 60 4 \ “1” “Grilled ham” \ “2” “Swiss Cheese” \ “3” “Charcoal cooked Chicken thighs” \ “4” “Baked potatos” 3>&1 1>&2 2>&3) 
exitstatus=$? 
if [ $exitstatus = 0 ]; 
then echo “Your chosen option:” $OPTION 
else echo “You chose Cancel.” 
fi 

И я только что вставили этот скрипт, чтобы проверить, как он работает и модифицировать его, это не мой скрипт, и он должен работать, но он говорит: «Вы выбрали Отмена».

0

Возможно, вам нужны операторы сравнения строк, такие как == или !=. Например,

if [ "$something" == "you" ]; then 
    echo "$something" 
else 
    echo "nope" 
fi 

Если $something равен you, то эхо $something; else echo nope.

Или, как упоминал в своем комментарии Дэвид К.Ранкин, вы можете проверить строковую переменную, чтобы доказать, что строка пуста или нет. Например,

if [ -z "$something"] ;then 

Строка пуста

if [ -n "$something" ]; then 

Строка непусто

Для получения дополнительной информации об этом, проверьте страницу TEST вручную.