Awk print without file


How to print using awk without a file.
for i in {2..10};do
awk '{printf("%.2f %.2f\n", '$i', '$i'*(log('$i'/('$i'-1))))}'


Desired output
2   value
3   value
4   value
and so on

value indicates the quantity after computation

BEGIN Block is needed if you are not providing any input to awk either by file or standard input. This block executes at the very start of awk execution even before the first file is opened.

awk 'BEGIN{printf.....

so it is like:

From man page:

Gawk executes AWK programs in the following order. First, all variable assignments specified via the -v option are performed. Next, gawk compiles the program into an internal form. Then, gawk executes the code in the BEGIN block(s) (if any), and then proceeds to read each file named in the ARGV array. If there are no files named on the command line, gawk reads the standard input.

awk structure:

 awk 'BEGIN{get initialization data from this block}{execute the logic}' optional_input_file