If I have a program that multiplies the user-supplied value with 10, how do I write another bash script that has arguments passed to it and takes these arguments and collects the output of the other program and organizes it into a table?

For example:

    [user]$ table 1 5
    #Value  Result
     1      10
     5      50

2 Answers 2

  expr "$1" \* 10

  printf '%s\t%s\n' \#Value Result
  for a; do
    printf '%s\t%s\n' "$a" "$(tenTimes "$a")"

table 1 5


#Value  Result
1   10
5   50
  • if my tenTimes script is in /home/user/sim/ but my table script is located in /home/user/scrips/ , how do I call the tenTimes script in the table script?
    – bbycakes3
    Commented Oct 26, 2015 at 0:11
  • 1
    You run your tenTimes script in exactly the same way you would any other program or script. It has to be set executable (chmod +x), and it has to be either in your $PATH or you need to specify the full pathname to the script (e.g. /home/user/sim/tenTimes rather just tenTimes)
    – cas
    Commented Oct 26, 2015 at 0:15
  • /home/user/sim/tenTimes or have /home/user/sim/ be a component of your PATH variable. Commented Oct 26, 2015 at 0:15
  • Relative paths should work also, but you should cd into dirname "$0" (the path of your currently executing script) before you use them or graft them onto that path. Commented Oct 26, 2015 at 0:16
  • 1
    btw, if you intend to write a lot of scripts, it's useful to have a ~/bin directory and add that to your PATH. Then mv or cp your scripts to ~/bin
    – cas
    Commented Oct 26, 2015 at 0:17

You can it through a shell interpreter with an absolute or relative path;

/bin/sh /usr/local/bin/script
/usr/sbin/ksh ~/script

Maybe you want to use some functions much like an included library;

func_a() { echo $(($1%42)); }

And in another file:

. ~/path/to/func_a_file

Or maybe you want to call the script while assigning the results as a variable:


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .