2015-08-12 2 views
0

Я пытаюсь добавить вывод команды в переменную в Bash. Мой кодДобавление вывода из команды в переменную в Bash

#!/bin/bash 

for file in * 
do 
    lineInfo=`wc -l $file` 
    echo "$lineInfo" 
done 

Я понимаю, как «захватить» вывод команды в переменную, как я сделал в этом направлении за счет использования обратными кавычками.

lineInfo=`wc -l $file` 

Есть ли чистый путь? Я могу разместить выход этого целого цикла в переменную в Bash? Или на каждой итерации цикла for добавьте вывод команды wc в linesInfo? (Не перенаправляя ничего в файлы) Спасибо.

+1

Что вы на самом деле пытаетесь сделать в целом? Я подозреваю, что есть более простой способ - возможно, используя 'bash array'. –

+0

Вы можете изменить 'lineInfo = \' some_command \ '' на 'lineInfo = '$ lineinfo \' some_command \ '' 'или даже лучше использовать массив. – anishsane

+0

Я только что нашел более простой способ добиться желаемого результата. Извините за неприятности. Я мог бы просто использовать wc -l *. Это даст мне счетчик моих файлов. – Bobby

ответ

1

Это хранит все Infos строки (разделенные запятыми) в одну переменную и печатает эту переменную:

#!/bin/bash 

total="" 

for file in * 
do 
    lineInfo=`wc -l $file` 
    total="$total$lineInfo, " # or total+="$lineInfo, " 
done 

echo $total 
+1

Вы также можете использовать 'total + = '$ lineInfo,' '. – chepner

+0

@chepner Спасибо, я добавил это. – geckon

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