LINUX.ORG.RU

[bash] передать аргумент функции в команду


1

0

есть такой кусок кода внутри функции

function format_print () 
{
#$1 - arg1
#$2 - arg2
...
echo $y | awk '{printf("%16s|",$1)}'
...
}

можно ли хардкод %16s сделать переменным значением и передавать в awk как значение аргумента функции format_print ()? То есть добавить, к примеру, arg3 с помощью которого задавать размер поля вывода

'{printf("'$1'|",$1)}' 

но если $1 будет содержать пробелы. то будет не совсем ожидаемый результат.

я бы так сделал:

function format_print ()  
{ 
 arg1=$1; shift
 arg2=$1; shift

 ... 
 echo $y | awk '{printf("'"${arg1}"'|",$1)}' 
 ... 
}

Slavaz ★★★★★ ()
Ответ на: комментарий от svu

Угу, более элегантное решение. Снимаю шляпу :)

Slavaz ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.