проблема с bash

Discussion in 'Linux, Freebsd, *nix' started by br3d, 30 Nov 2010.

  1. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Здравствуй Уважаемые!
    столкнулся со следующим глюком:

    num=`grep -o "превед" test | wc -w `;
    (( sum1 = num * 2 ));
    echo $sum1;

    выдает (******* sum1: not found )
    если использую echo $[ num * 2 ]; вместо (( sum1 = num * 2 ));

    то выдает вообще бред ($[ num lab2.sh lab2_2 script2.sh script3.sh script4.sh test tr 2 ]) это список файлов лежащих в директории со скриптом, проверил на другом компе, все нормально работает ...
    ______________________________
    что интересно сейчас проверил let "sum1=num*2" выдает что команды let не найдено, хотя просто в консоли свободно выполняется...( + whiсh let ничего не выдает...
     
    #1 br3d, 30 Nov 2010
    Last edited: 30 Nov 2010
  2. emomasson

    emomasson Member

    Joined:
    27 Jul 2010
    Messages:
    174
    Likes Received:
    12
    Reputations:
    5
    Дык... баттенька...
    (( sum1 = $num * 2 ));
     
    1 person likes this.
  3. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0

    не уважаемый, тут вы ошибаетесь, мой пример рабочий, но у меня видимо что то с машиной что он не работает ...
     
  4. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    собственно и думал что мне кто нить подскажет что за проблема ...
     
  5. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,694
    Likes Received:
    3,149
    Reputations:
    236
    не зли нас, быдло.
    emomasson всё ясно сказал.

    [​IMG]
     
  6. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    говорю проблемма не в коде ....
    (( sum1 = $num * 2 )); это исправление значения не играет, все равно выдает ошибку: "***.sh: 3: sum1: not found"
    тот же код работает на другой машине...

    altblitz ты попроще с выражениями
     
  7. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    в начале скрипта пропиши
    Code:
    #!/bin/bash
    или запускай так: /bin/bash path/to/script

    у тебя скорей всего выполняется через /bin/sh а он многого не понимает (потому что скрипт для баша)
     
  8. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    #! /bin/bash

    #grep -c превед test

    num=`grep -o "превед" test | wc -w `;
    echo $num;
    (( sum1 = num * 2 ));
    #echo $[ num * 2 ];
    echo $sum1;

    вот весь код..., орет lab2.sh: 7: sum1: not found
    даже если оставить только
    #! /bin/bash
    (( sum1 = num * 2 ));
    все равно ругается...
     
  9. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    попробуй скрипт передать параметром башу (запустить через баш).
    у меня если запускать через /bin/sh то те же ошибки выдаёт
     
  10. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    да, помогло! благодарю !!!
     
  11. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Ос убунту?
    если да то терминалом в начале перейди в папку со скриптом и запусти, если поможет то надо с правами мучатся, на форуме убунту есть описание этой проблеммы.
     
  12. br3d

    br3d New Member

    Joined:
    29 Nov 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    да убунта, благодарю, все решилолс запуском не через sh lab2.sh, a chmod u+x ./lab2.sh

    ВСЕМ БОЛЬШОЕ СПАСИБО ! думаю тему можно закрывать
     
  13. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Да не за что =)
     
    1 person likes this.
  14. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,694
    Likes Received:
    3,149
    Reputations:
    236
    gold-goblin,
    +9000. хакер, в лучшем смысле слова ! ))

    и передай, между прочим ТС, что есть bc
     
    #14 altblitz, 3 Dec 2010
    Last edited: 3 Dec 2010
    1 person likes this.
  15. emomasson

    emomasson Member

    Joined:
    27 Jul 2010
    Messages:
    174
    Likes Received:
    12
    Reputations:
    5
    Лично я в таких ситуациях пробую просто в командной строке писать... все проверил у меня работало.