Есть ли способ использовать функцию оболочки, которая принимает переменную из скрипта bash (или, скорее, передать переменную в функцию оболочки)?
Следующая процедура работает отлично (обратите внимание, я использую эту процедуру как часть моей необходимости реализовать перенаправление вывода, как объяснено здесь ):
mycmd() { cat <(head -3 MyProgrammingBook.txt|awk -F "\t" '{OFS="\t"}{print "Helloworld",$0}') > outputfile.txt; };
export -f mycmd;
bsub -q short "bash -c mycmd"
Тем не менее, я хотел бы предоставить начальное имя файла в виде переменной, а не как жестко закодированное имя, что-то вроде следующего, но следующее не работает:
myinputfile="MyProgrammingBook.txt";
mycmd() { cat <(head -3 ${myinputfile}|awk -F "\t" '{OFS="\t"}{print "Helloworld",$0}') > outputfile.txt; };
export -f mycmd;
bsub -q short "bash -c mycmd"
В конечном счете, mycmd () будетвызывается внутри цикла и будет использоваться каждый раз с другой переменной.