Автор Гілка: Програмування Shell Bash.  (Прочитано 6474 раз)

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #15 : 2016-04-17 00:41:49 »
Спробував з цим кодом але ніяких змін не відбулось

Отримую те ж саме повідомлення в обох випадках
You did not enter one or more filenames

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #16 : 2016-04-17 00:45:00 »
А-а ну це теж саме, зрозумів. Просто параметр $1 передали в змінну

Відсутній ukrkyi

  • Дописувач
  • **
  • дописів: 99
  • Карма: +0/-0
Re: Програмування Shell Bash.
« Відповідей #17 : 2016-04-17 00:53:00 »
Ну хз, дивись сам, я спати пішов
Найкраще — просто запускати з usage $1.
Це ж неважко
openSUSE TUMBLEWEED | Arch Linux | HP ProBook 4540s | Шукаю драйвер rtbth… Відлетів після оновлення ядра і не повернувся…

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #18 : 2016-04-17 01:16:09 »
Ну хз, дивись сам, я спати пішов
Найкраще — просто запускати з usage $1.
Це ж неважко

Да, так і запускаю, проблема в тому що воно виводить однакове повідомлення в обох випадках.
Надобраніч! Цеж точно, у вас ніч зараз...
« Змінено: 2016-04-17 04:17:28 від Ruson »

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #19 : 2016-04-17 02:56:13 »
Ура! Вийшло =)

Залишилась зовсім маленька деталь.

У мене зараз повідомлення про помилку  виглядає так

usage: ./linux_ru filename ...
ERROR:
Could not find file xdfg

а потрібно

usage: ./linux_ru filename ...
ERROR: Could not find file xdfg

ось код

function usage {
  echo -e "usage: $0 filename ...\nERROR:"
  if [ -n "$1" ]
    then
      [ -f "$1" ] && echo -e "\n$1" || echo -e "Could not find file"
  else
    echo "You did not enter one or more filenames"
  fi
}


Я розумію що я можу просто дописати на початку кожної стрічки, двічі. Але завдання полягає в тому щоб не робити повторювання...
Дякую!
« Змінено: 2016-04-17 04:15:50 від Ruson »

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Re: Програмування Shell Bash.
« Відповідей #20 : 2016-04-17 10:05:48 »
Перше echo має бути з ключем -n
function usage {
  echo -en "usage: $0 filename ...\nERROR:"
  if [ -n "$1" ]
    then
      [ -f "$1" ] && echo -e "\n$1" || echo -e "Could not find file"
  else
    echo "You did not enter one or more filenames"
  fi
}

Ubuntu 20.04/18.04; CentOS 7.x

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #21 : 2016-04-17 10:59:26 »
Перше echo має бути з ключем -n


ДЯКУЮ ДРУЖЕ!!! Деж це такі мозги взяти щоб все запамятати так. Я навіть не знав як коректно прописати в гуглі щоб знайти рішення.
« Змінено: 2016-04-17 11:00:01 від Ruson »

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #22 : 2016-05-11 09:28:49 »
Всім привіт, зараз настало питання, як перевірити аргумент по його назві. Потрібно вибрати певний аргумент, наприклад "Error" і вивести його з додатковим текстом.

Наприклад  мій скрипт зараз виводить аргументи ось так:

$ ./template.sh xxx qqq zzz
xxx
qqq
zzz

А в цьому випадку треба щоб було так:

$ ./template.sh xxx Error yyy
xxx
Error found
zzz


Сам скрипт:

  for args
    do
      echo "$args"
    done
« Змінено: 2016-05-11 09:56:40 від Ruson »

Відсутній Ruson

  • Новачок
  • *
  • дописів: 31
  • Карма: +0/-0
  • Вивчаю Linux
Re: Програмування Shell Bash.
« Відповідей #23 : 2016-05-11 10:10:34 »
Вроді би працює цей код =) Просто не знав як перевірити string

if [[ $args == Error ]];
then
    echo "Error found"
else
    echo "$args"
fi