2013-04-23 4 views
-3

Я работаю над скриптом оболочки, который содержит следующий фрагмент кода. Я не понимаю этих строк, в основном команда cut и команда export. Может ли кто-нибудь помочь мне ... Также, пожалуйста, укажите мне лучшую ссылку на команду linux. Спасибо заранее!Команда вырезания и экспорта в сценарии оболочки

# determine sum of 60 records 
awk '{ 
    if (substr($0,12,2) == "60" || substr($0,12,2) == "78") \ 
      print $0 
}'< /tmp/checks$$.1 > /tmp/checks$$.2 

rec_sum =`cut -c 151-160 /tmp/checks$$.2 | /u/fourgen/cashnet/bin/sumit` 

export rec_sum 

Внутри моего SUMIT сценария Ниже приводится код

awk '{ total += $1} 
END {print total}' $1 

Позвольте мне показать мой основной сценарий prep_chk

awk 'BEGIN{OFS=""} {if (substr($0,12,2) == "60" && substr($0,151,1) == "-") \ 
     { print substr($0,1,11), "78", substr($0,14) } \ 
    else \ 
     { print $0 } \ 
    }' > /tmp/checks$$.1 

# determine count of non-header record 
rec_cnt=`wc -l /tmp/checks$$.1` 
rec_cnt=`expr "$rec_cnt - 1"` 
export rec_cnt 

# determine sum of 60 records 
awk '{ if (substr($0,12,2) == "60" || substr($0,12,2) == "78") \ 
    print $0 }'< /tmp/checks$$.1 > /tmp/checks$$.2 
rec_sum=`cut -c 151-160 /tmp/checks$$.2 | /u/fourgen/cashnet/bin/sumit` 
export rec_sum 

# make a new header record and output it 
head -1 /tmp/checks$$.1 | awk '{ printf("%s%011.11d%05.5d%s\n", \ 
    substr($0,1,45), rec_sum, rec_cnt, substr($0,62)) }' \ 
    rec_sum="$rec_sum" rec_cnt="$rec_cnt" 

# output everything else sorted by tran code 
grep -v "%%%%%%%%%%%" /tmp/checks$$.1 | cut -c 1-150 | sort -k 1.12,13 
+0

Лучше по сравнению с чем? Вы прочитали страницу руководства? Например, «человек отрезал»? – Matteo

+0

Я не пользователь linux, и я не знаю, что waht - это справочная страница! Также я не выполняю эти сценарии. Я просто переписываю его на PHP. –

+0

Google для «человека вырезать» или набрать его в оболочке – Matteo

ответ

2

cut -c обрезает текст из заданной позиции в файле, в этом случае символы с 151 по 160 в файле /tmp/checks$$.2. Эта строка передается по каналу в код submit, который производит некоторый вывод. Этот вывод затем присваивается переменной окружения rec_sum. Команда export делает эту переменную доступной для использования через систему, например, в другом сценарии оболочки.

Редактировать: Если это все, что у вас есть внутри сценария отправки, оно просто добавляет строку, которую вы передаете, что, по-видимому, должно быть числом, до некоторого значения и печатать номер, который он передал. Похоже, в этом скрипте должен быть еще какой-то код, иначе это было бы слишком сложным способом сделать это.

+0

Пожалуйста, посмотрите мой основной сценарий prep_chk –

+0

Я думаю, что я дал вам приличную сумму помощи, объясняя различные части «вашего» сценария. Если бы я был вами, я бы нашел онлайн-учебник об awk. Он выглядит очень сложным и сложным, но как только вы получите его, он действительно мощный. Также у вас всегда есть страницы с людьми, которые очень хорошо написаны, а для чего-то еще есть Google. Если вы застряли в игре с помощью отдельных команд из сценария в терминале. – James

Смежные вопросы