здравтствуйте.обясните плиз почему данный скрипт под linux'ом работает, а под freebsd нет. затык идет на стадии обявления массива...
#!/bin/sh
area2=( var1 var2)
for i in "${area2[@]}"
do
echo "$i"
done
>здравтствуйте.
>
>обясните плиз почему данный скрипт под linux'ом работает, а под freebsd нет.
>затык идет на стадии обявления массива...
>
>#!/bin/sh
>
>area2=( var1 var2)
>
>for i in "${area2[@]}"
>do
> echo "$i"
>donearea2="var1 var2"
for i in ${area2}
do
echo $i
done
спасибо большое.
где можно почитать про програмирование массивов в shell'е
и про отличия bsd и linux sh'ла?
>спасибо большое.
>где можно почитать про програмирование массивов в 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'е
>и про отличия bsd и linux sh'ла?Во фре sh - настоящий POSIX- и Korn- совместимый шелл, содержится там специально для скриптов, а в линуксе - это линк на тот же bash.
FreeBSD:
man sh
man builtins <-- man builtins нужен именно FreeBSD-шный, а не линуксовый, там только про баш.Если под рукой нет фри, то маны можно найти на http://www.freebsd.org
>Во фре 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.
...
>>Во фре 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.
>...Как видим, ничего не происходит автоматически. Чтобы писать переносимые скрипты, кроме названия оболочки надо ещё и избегать башизмов, т.е. специфических расширений баша, которые не совместимы ни с чем, кроме самого баша.
>здравтствуйте.
>
>обясните плиз почему данный скрипт под linux'ом работает, а под freebsd нет.
>затык идет на стадии обявления массива...
>
>#!/bin/sh
>
>area2=( var1 var2)
>
>for i in "${area2[@]}"
>do
> echo "$i"
>doneВ какой-то OS врут выдавая Bash за Bourne-shell, предполагаю что это Linux
;)