0

I have written a java program that maintains a database for bank accounts (This is a course assignment) and I want to create a bash script to run. Upon running the program, you have to input "i", "h", "t" or "?" to get it to perform a task. I would like to take those command line arguments and use them for when running this program in bash. For example, if the script were named accounts, I want to be able to type accounts -i and the script would launch the program with the i command already input and perform the task for that argument? How would I go about doing that?

1
  • see man getopt or help getopts. Commented Dec 4, 2016 at 8:48

1 Answer 1

1

The best would properly be for your Java program to take arguments.

But I assume all of this is for educational purpose only, and that said Java program reads from standard input.

Usually configuration for a program should go as arguments:

$ ./my_program --configA --configB --optC=valD

But In your case it seems like you have an interactive program that prompts the user for questions:

$ ./my_program
Question 1?
> Answer1
Question 2?
> Answer2

$ is command prompt, and > is user input.

Anyway one can feed standard input from a pipe, file, etc etc:

my_program1 | my_program2

Output from my_program1 goes as input to my_program2.

my_program < my_file

Input to my_program is coming from a file my_file.

You can also feed input from a here documents, the syntax is <<MARKER and ends with MARKER:

my_program << NAME_DOESNT_MATTER
line1
line2
line3
NAME_DOESNT_MATTER

This will put three lines into my_program.

In bash it's simply to refer to positional parameters as they are called $1, $2, .. $n:

$ cat my_shell_program
#!/bin/bash
echo "$2" "$1"
$ ./my_shell_program "hello world" "John Doe"
John Doe hello world

Now you should be able to figure out the rest.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.