This is the formatted C program is called fahr_kel:  #include <stdio.h> #include <stdlib.h> #include <iostream> #include <string> #include <vector> int main( int argc, char *argv[] ) {    if (argc < 3)  {  std::cerr << Usage: << argv[0] <<  arg1 arg2 \n  << arg1 is the conversion type (1 or 2) \n   << arg 2 is the temp to be converted << std::endl;  return 1; } // Assign the variables used in this program int temp, conv_temp, conv_type; // assign the input options to variables conv_type=atoi(argv[1]); temp=atoi(argv[2]); // convert the temps.. // if the input number is 1, convert from Kelvin to Fahrenheit // if the input number is anything else, convert from Fahrenheit to Kelvin if (conv_type == 1) conv_temp = (((temp - 273) * 1.8) + 32); else   conv_temp = (((( temp - 32 ) * 5 ) / 9 ) + 273 ); // print the data  printf (       %3.1i                  %3.1i\n,temp,conv_temp); // end of main function  return 0; }I need to manipulate this program from the user input in my bash script.This is the data file I need to pass through the C program called project3.data: 0 32 100 212 108 1243 3000 85 22 2388 235This is the script I started called project3.bash. #!/bin/bash echo -n Convert from  kelvin to fahrenheit(1) or fahreinheit to kelvin(2) read choice  /home/username/project3/fahr_kel [ choice project3.data ]I am only getting the first row for the output of the script.0 and 256The output needs to look like this: ---------------------- ----------------------- Fahrenheit Temperature Kelvin Temperature --------------------- -----------------------           0                  256 ---------------------  -----------------------           32                 273 ---------------------- -----------------------          100                 310 ---------------------- -----------------------          212                 373 ---------------------- -----------------------          108                 315 ---------------------- -----------------------          1243                945 ---------------------- -----------------------          3000                1921 ---------------------- -----------------------           85                  302 ---------------------- -----------------------           22                  268 ---------------------- -----------------------          2388                 1581 ---------------------- -----------------------          235                   385 ---------------------- -----------------------
How do I go about converting temperatures using C program in shell script?
bash;shell;scripting
Your C++ program converts temperatures as desired, and expects a temperature value as the second input argument. However, your bash script does not pass the temperature as input argument. Instead, it calls the c++ program with the data filename as input argument. This is not desired. You should call the c++ program using the input values themselves as argument; i.e. you need to modify the bash script as follows.The necessary fix in the bash script is to call the c function once for every data line, and to add necessary formating. I show this below. #!/bin/bashinputFile=project3.dataecho -n Convert from  kelvin to fahrenheit(1) or fahreinheit to kelvin(2)read choice # run the following per input data line#./fahr_kel [ choice project3.data ]cmd=./fahr_kel $choice # print headerlinePrint=------------------  ----------------echo $linePrintecho Fahrenheit Temperature Kelvin Temperatureecho $linePrintwhile read inputValdo      $cmd $inputVal      echo $linePrintdone < $inputFileecho $linePrintAnother way is to change the  c++ program to expect a file input instead of temperature input. 