LINUX.ORG.RU
ФорумTalks

[shell]

 


0

0

Допустим есть скрипт. Есть у него две секции: к примеру

!#/bin/sh

секция 1

секция 2

Нужно чтобы при выполнении скрипта с определенным параметром, записанным в скрипте исполнялась только одна секция, а при запуске с другим только другая. Скрипт нужен для бекапа системы. Как реализовать ?


Ответ на: комментарий от alex_custov

>$@ - это список аргументов

Для случая когда аргумент один вполне подходит. Ну если их больше то да $1 $2 без этого некуда.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

если их будет случайно два, скрипт вообще работать не будет

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

Нет, не совсем то.Повторюсь :
!#/bin/sh

СЕКЦИЯ 1
команда 1



СЕКЦИЯ 2
команда 2


если мы запускаем:
./script -param1 - выполняется лиш команда ( команды) из первой секции. Если запускаем с param2 то из второй.


ShTH
() автор топика
Ответ на: комментарий от Dudraug

#!/bin/bash
            if [ "$1" = "a" ]; then
                echo Работает секция 1
                echo Правда
                cd /bin
                ls
            else
                echo Секция два работает
                echo Ничего не покажу же
            fi


Выполни

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

>#!/bin/bash
>            
>               if [ "$@" = "a" ]; then
>                  Первый блок
>              else
>                  Второй блок
>              fi



Тут как я понял параметр это "a"
Но мне нужно, чтобы с одним параметром выполнялся только  один блок, а с другим только другой блок

ShTH
() автор топика
Ответ на: комментарий от ShTH

Вот только не ясно одно: elif , else ... в каком порядке ? Подсветка синтаксиса какбе намекае, что это не самостоятельно выдумывается

ShTH
() автор топика
Ответ на: комментарий от ShTH

Базовый курс программирования здесь читать или как? Догадаться, что elif == else if, религия не позволяет?

...а потом они работают сисадминами и доставляют на TDWTF.

shimon ★★★★★
()

case "${1}" in
a)
echo 'Читай маны'
;;
b|c|d|e)
echo 'Все равно читай маны'
;;
fghijklmn|opqrstu)
echo 'Всегда читай маны'
;;
*)
echo 'Каждый день читай маны'
;;
esac

YAR ★★★★★
()

too fat

Дата регистрации: 19.11.2008 7:14:46

anonymous
()

вижу, местные анонимусы совсем позабыли про величественный стиль sh...
вот вам в назидание:

#!/bin/sh
function section_first() {
  echo "working with first section";
};

function section_second() {
  echo "working with second section";
};

case "$1" in
  ("man")
    section_second;
  ;;
  (*)
    section_first;
  ;;
esac;

anonymous
()
Ответ на: комментарий от anonymous

> величественный стиль sh...

/tmp/ttt.sh: 3: Syntax error: "(" unexpected

В sh нет слова function.  Это какой-то башизм.

Функции объявляются так:

section_first() {
  echo "working with first section";
};

dilmah ★★★★★
()

И это ламерьё считает себя в достаточной степени супер-пупер-гуру-линуксоидом, чтобы высокомерно гнать на пользователей компиз. Ну разве не чмо?

anonymous
()
Ответ на: комментарий от anonymous

> супер-пупер-гуру-линуксоидом

не считаю. Просто мне не понятен смысл компиза. А ты толст.

ShTH
() автор топика
Ответ на: комментарий от ShTH

>не считаю. Просто мне не понятен смысл компиза. А ты толст.

Я не понимаю смысла вселенной. Вселенная не нужна.

Dudraug ★★★★★
()

.ля! давайте ещё всем коллективом hello world сочинять!

beastie ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.