Автор Тема: проблем със set -A array  (Прочетена 2250 пъти)

loshiat

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
проблем със set -A array
« -: Jun 14, 2010, 11:30 »
#/bin/bash
aa=20
ab=26
ac=32
ad=6
set -A <array1> aa ab ac ad
echo "array1 is: $array1"

искам тези стойности да влезат в масив array1 и след това той да се визуализира. Другото нещо което искам е да се изведат двете най големи стойности, което не знам от къде да почна. Четох, четох.... не успява. Моля за помощ или дайте линк къде да прочета...
Активен

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: проблем със set -A array
« Отговор #1 -: Jun 14, 2010, 11:43 »
Не съм се занимавал с bash скриптове, но по-принцип за да селектираш информация от масив ти трябва някакъв loop който да го претървса и условеи за филтиране на резултатите.
Ето тук има guide за bash, предполагам ще ти е полезно:
http://tldp.org/LDP/abs/html/
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: проблем със set -A array
« Отговор #2 -: Jun 14, 2010, 13:57 »
При bash синтаксисът е друг:

Код
GeSHi (Bash):
  1. aa=20 ab=26 ac=32 ad=6
  2.  
  3. arr=(
  4.  "$aa" "$ab" "$ac" "$ad"
  5.  )
  6.  
  7. printf 'all elements of $arr:\n'
  8.  
  9. printf '%s\n' "${arr[@]}"
  10.  
  11. printf 'top 2:\n'
  12.  
  13. printf '%s\n' "${arr[@]}" |
  14.  sort -nr |
  15.    head -n2
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: проблем със set -A array
« Отговор #3 -: Jun 14, 2010, 15:06 »
#/bin/bash
aa=20
ab=26
ac=32
ad=6
set -A <array1> aa ab ac ad
echo "array1 is: $array1"

искам тези стойности да влезат в масив array1 и след това той да се визуализира. Другото нещо което искам е да се изведат двете най големи стойности, което не знам от къде да почна. Четох, четох.... не успява. Моля за помощ или дайте линк къде да прочета...
Това работи на корн шел, само че формата е:
set -A array1 aa ab ac ad
и ако искаш числата, а не променливите, става
set -A array1 $aa $ab $ac $ad
Активен

0x2B|~0x2B

loshiat

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Re: проблем със set -A array
« Отговор #4 -: Jun 14, 2010, 15:15 »
При bash синтаксисът е друг:

Код
GeSHi (Bash):
  1. aa=20 ab=26 ac=32 ad=6
  2.  
  3. 1. arr=(
  4.  "$aa" "$ab" "$ac" "$ad"
  5.  )
  6.  
  7. . printf 'all elements of $arr:\n'
  8.  
  9. 2 .printf '%s\n' "${arr[@]}"
  10.  
  11. printf 'top 2:\n'
  12.  
  13. 3. printf '%s\n' "${arr[@]}" |
  14.  sort -nr |
  15.    head -n2



Искрено съм ти благодарен. Прочетох за printf, sort i head с тези опции които си написал. Предполага че | е за да се изпълни printf със следващите условия  сортиране в нисходящ ред и визуализация само на първите 2 реда. Много лагодаря. Ще пробвам и с други аргументи на printf, sort head.

п.п. Без помощта ти трудно щях да се оправя
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: проблем със set -A array
« Отговор #5 -: Jun 14, 2010, 16:09 »
Искрено съм ти благодарен. Прочетох за printf, sort i head с тези опции които си написал. Предполага че | е за да се изпълни printf със следващите условия  сортиране в нисходящ ред и визуализация само на първите 2 реда. Много лагодаря. Ще пробвам и с други аргументи на printf, sort head.

п.п. Без помощта ти трудно щях да се оправя
не, символа | означава че изхода на лявата команда ще се подаде като вход на дясната т.е. това, което направи print ще бъде като входни данни за sort, а резултата от sort ще е входни данни за head
Прочети малко за STDIN, STDOUT, STDERR
Активен

0x2B|~0x2B

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Array of strings - c
Общ форум
ivanatora 3 1905 Последна публикация Mar 25, 2007, 00:24
от cenata
много малък и ОГРОМЕН проблем с Bash ARRAY
Общ форум
loshiat 11 3347 Последна публикация Jul 15, 2010, 12:19
от niakoi
Търсене и подмяна на число в Array - BSD
Общ форум
loshiat 9 2654 Последна публикация Oct 07, 2011, 13:53
от radoulov
PHP: От array към associative array
Web development
b2l 25 7641 Последна публикация Jul 12, 2012, 17:23
от nask00