The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
shell программирование, !*! Nickolay, 19-Фев-04, 13:29  [смотреть все]
здравтствуйте.

обясните плиз почему данный скрипт под linux'ом работает, а под freebsd нет. затык идет на стадии обявления массива...

#!/bin/sh

area2=( var1 var2)

for i in "${area2[@]}"
do
   echo "$i"
done

  • shell программирование, !*! Brainbug, 14:09 , 19-Фев-04 (1)
    >здравтствуйте.
    >
    >обясните плиз почему данный скрипт под linux'ом работает, а под freebsd нет.
    >затык идет на стадии обявления массива...
    >
    >#!/bin/sh
    >
    >area2=( var1 var2)
    >
    >for i in "${area2[@]}"
    >do
    >   echo "$i"
    >done

    area2="var1 var2"

    for i in ${area2}
    do
        echo $i
    done

    • shell программирование, !*! Nickolay, 14:14 , 19-Фев-04 (2)
      спасибо большое.
      где можно почитать про програмирование массивов в shell'е
      и про отличия bsd и linux sh'ла?

      • shell программирование, !*! Brainbug, 14:26 , 19-Фев-04 (3)
        >спасибо большое.
        >где можно почитать про програмирование массивов в shell'е
        >и про отличия bsd и linux sh'ла?

        V linux v bol6instve slu4ajev ispolzujetca bash. V *BSD obi4no sh. A voob6e est Advanced Bash Scripting Guide esli ne o6ibajus. No tam imenno pro bash.

      • shell программирование, !*! Amy, 15:45 , 19-Фев-04 (4)
        >спасибо большое.
        >где можно почитать про програмирование массивов в shell'е
        >и про отличия bsd и linux sh'ла?

        Во фре sh - настоящий POSIX- и Korn- совместимый шелл, содержится там специально для скриптов, а в линуксе - это линк на тот же bash.

        FreeBSD:
        man sh
        man builtins  <-- man builtins нужен именно FreeBSD-шный, а не линуксовый, там только про баш.

        Если под рукой нет фри, то маны можно найти на http://www.freebsd.org

        • shell программирование, !*! vt, 15:58 , 19-Фев-04 (5)
          >Во фре sh - настоящий POSIX- и Korn- совместимый шелл, содержится там
          >специально для скриптов, а в линуксе - это линк на тот
          >же bash.

          $man bash
          ...
          If bash is invoked with the name sh, it tries to mimic the
          startup  behavior  of historical versions of sh as closely
          as possible, while conforming to  the  POSIX  standard  as
          well.
          ...

          • shell программирование, !*! Amy, 16:11 , 19-Фев-04 (6)
            >>Во фре sh - настоящий POSIX- и Korn- совместимый шелл, содержится там
            >>специально для скриптов, а в линуксе - это линк на тот
            >>же bash.
            >
            >$man bash
            >...
            >If bash is invoked with the name sh, it tries to mimic
            >the
            >startup  behavior  of historical versions of sh as closely
            >as possible, while conforming to  the  POSIX  standard  
            >as
            >well.
            >...

            Как видим, ничего не происходит автоматически. Чтобы писать переносимые скрипты, кроме названия оболочки надо ещё и избегать башизмов, т.е. специфических расширений баша, которые не совместимы ни с чем, кроме самого баша.

  • shell программирование, !*! lavr, 16:18 , 19-Фев-04 (7)
    >здравтствуйте.
    >
    >обясните плиз почему данный скрипт под linux'ом работает, а под freebsd нет.
    >затык идет на стадии обявления массива...
    >
    >#!/bin/sh
    >
    >area2=( var1 var2)
    >
    >for i in "${area2[@]}"
    >do
    >   echo "$i"
    >done

    В какой-то OS врут выдавая Bash за Bourne-shell, предполагаю что это Linux
    ;)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру