How to provide auto inputs for a sub-script within a script?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to provide auto inputs for a sub-script within a script?
# 1  
Old 03-05-2014
How to provide auto inputs for a sub-script within a script?

Hi All,

I am writing a shell script.
Code:
#!/bin/bash
cat /etc/hosts
mkdir -p /var/tmp
mount 113.123.35.37:/vol/vol615/syb /var/tmp

In above script I am trying to add below predefined script/command (/var/tmp/db_tools)
This command in turn ask for user input, which will be always option 13 in my case.
Then User has to give '0' and at last exit

So three inputs need to give everytime whenever script/command (/var/tmp/db_tools) is running.
Code:
13
0
exit

Code:
su - sybase
/var/tmp/db_tools
 
root@host:/# su - sybase
sybase@host> /var/tmp/db_tools
*************************************************************************
            Sybase DB tools
*************************************************************************
*************************************************************************
 
      Select the action you want to perform:
 
            1.  Tempdb Setup Validation
            2.  Veritas QIO Validation
            3.  Sybase Error Logs Validation
            4.  File Validation
            5.  Sybase Database Space Usage Validation
            6.  Sybase Database & Device Usage Listing
            7.  Advanced Sybase DBA Tools
            8.  Diagnostics & Instrumentation Administration
            9.  Diagnostics & Instrumentation Reports
            10. Examine Configurable 
            11. Backup Validation
            12. Restore
            13. Healthcheck <Validation> Summary
 
            0.  Exit
 
      Enter your choice: 13
your healthcheck is okay
 
Enter your choice: 0
sybase@host> 
sybase@host> exit
sybase@host> logout
 
root@host:/#

Please suggest how to append above.


Regards,
Madhur

Last edited by radoulov; 03-05-2014 at 09:38 AM..
# 2  
Old 03-05-2014
Why not simply modify the db_tools script so that it no longer asks for user input but takes the defaults that you want?
# 3  
Old 03-05-2014
You could trying using a heredoc. Or if you need to do something more complex (like verifying responses) then look at expect.
# 4  
Old 03-05-2014
I'm confused to your requirements. Smilie

Do you want to automate running the switch-user and the db_tools? You could perhaps:-
Code:
su - sybase -c "echo \"13\n0\" | /var/tmp/db_tools" >> logfile

If you want to add a function to the db_tools scripts, we will need to see the script to know how it is laid out. Hopefully, there is a menu display, an input request and then a case statement, in which case we can add the function easily.



Can you help me out and explain what you are after?

It would be good to know the OS and version as some tools may have differences.



Robin
# 5  
Old 03-05-2014
Hi All,

Than You for the response.

Why not simply modify the db_tools script so that it no longer asks for user input but takes the defaults that you want?
-> Because the db_tools script is the standard for all the user.
But whenever I want t use this script it should take the my inputs i.e 13, 0 and exit.

Code:
sybase@host> /var/tmp/db_tools

13
0
exit

You could trying using a heredoc. Or if you need to do something more complex (like verifying responses) then look at expect.
-> heredoc and expect, I am not sure because this is the linux server where I cannot add any expect command tools.

Do you want to automate running the switch-user and the db_tools? You could perhaps:-
1st I want to run the "su - sybase" and then the "/var/tmp/db_tools" and provide the fixed inputs in the same sequence as "13, 0 and exit."

If you want to add a function to the db_tools scripts, we will need to see the script to know how it is laid out. Hopefully, there is a menu display, an input request and then a case statement, in which case we can add the function easily.
-> I dont want to add any finction.

My basic requirement is to run script as follows example :-

I am running below script with root user
Code:
#!/bin/bash
cat /etc/hosts
mkdir -p /var/tmp
su - sybase -> upto here no problem
/var/tmp/db_tools -> this should run once I swicth to sybase user
13 -> after running dba_tools I want to enter option 13 everytime
0 -> once option 13 is completed I want to pass 0
exit -> at last I want to enter exit


Thank You all for the reply and my apologies if something is not clear.

Regards,
Madhur

Last edited by Don Cragun; 03-05-2014 at 05:37 PM.. Reason: Add CODE tags.
# 6  
Old 03-06-2014
Then I think that my first suggestion has a chance of succeeding. What do you get from:-
Code:
su - sybase -c "echo \"13\n0\" | /var/tmp/db_tools" >> logfile

Are there any errors? Do you get the output you need in logfile?



Regards,
Robin
# 7  
Old 03-06-2014
Hi Robin,

When I run the below command

Code:
su - sybase -c "echo \"13\n0\" | /var/tmp/db_tools" >> logfile

it throws below message in logfile while keep on looping for the user inputs
Script aborted.......

Reason :-
First I want to do "su - sybase"
2.) Second it should run /var/tmp/db_tools
3.) Third we need to pass values in below order
13
0
exit


Thank You
Madhur

Last edited by Scott; 03-06-2014 at 07:47 AM.. Reason: Use code tags, please...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Can any one provide shell script for this ...

• With this script, users will be able to o Enter into the recycle bin mode. During this mode, all files deleted will be sent to the recycle bin. The recycle bin will be common to all users. o View contents of the recycle bin (his/her file(s) only). o Retrieve a particular file from the recycle... (3 Replies)
Discussion started by: bhavana busetty
3 Replies

2. Shell Programming and Scripting

Provide 2 inputs when prompts

Hi All, I am a novice to UNIX, i need to know is there a way to provide 2 inputs when the shell prompts and i need to assign those 2 values to 2 separate variables. I dont want to give those values as a arguments (while running the script). Thanks in advance!! (1 Reply)
Discussion started by: prasanna2166
1 Replies

3. Shell Programming and Scripting

Script to provide percentages?

so i'm have been stifled here inn my attempts at this. i need to calculate an unusual figure. what is the percentage difference between 400 and 3? usually, to get the percentage, you just divide the smaller number by the bigger number. then multiply the answer by 100. in this case... (10 Replies)
Discussion started by: SkySmart
10 Replies

4. Shell Programming and Scripting

How to provide stdin from one script to another script?

Dear all I have a scripts call "script.sh", that I need to provide 3 params from stdin i.e. # script.sh Please input first name : Hello Please input last name : Kitty Please input sex : F Without changing script.sh, I want to write another script call "script_slient.sh", that will... (6 Replies)
Discussion started by: on9west
6 Replies

5. Shell Programming and Scripting

Perl script for taking inputs from one script and storing them into a document.

Hi. I wanted to create a Perl script which can take the outputs of a Perl script as it's input and temporarily store them in a document. Need help. Thanks.:) (8 Replies)
Discussion started by: xtatic
8 Replies

6. Shell Programming and Scripting

Please provide me with a KSH script.

Hi frnds Im new to unix. I have an xml like the following: <?xml version="1.0"?> <serviceFeeDetail> <Data> <totalAmount>40</totalAmount> </Data> <serviceFee> <invoiceBillGrpNbr>1</invoiceBillGrpNbr> <serviceFeeLineItem> <billLineNbr>1</billLineNbr> ... (2 Replies)
Discussion started by: balesh
2 Replies

7. Shell Programming and Scripting

Provide input in sqlplus script

Hi guys. I m creating scripts which input multiple value , inside sqlplus script when it prompt/accept do anybody know how to provide multiple value inside sqlplus script when it prompt. like, enter value for first: enter value for second: enter value "save file as " : I m try... (11 Replies)
Discussion started by: tapia
11 Replies

8. Shell Programming and Scripting

need inputs on how i can change my script to reduce amount of time the script takes

HI , I have a list1 which consists of data that i have to search and a list2 which has the files that need to be searched .So basically i am using list1 on list2 to see if list1 data is present if found replace it .I have written the code using foreach loop for each list .This is taking the... (1 Reply)
Discussion started by: madhul2002
1 Replies

9. Shell Programming and Scripting

provide a user password from a script

Hi all, passwd <username> < /var/adm/passwd.txt cat /var/adm/passwd.txt abcd1234 abcd1234 when I run this from the script, it comes with: New password: It is not able to pick from the location /var/adm/passwd.txt. thanks in advance. (6 Replies)
Discussion started by: solaix14
6 Replies

10. UNIX for Dummies Questions & Answers

Shell Script to Auto Run PHP Script

Hello All! I am looking to build a monitoring script. The script should always run as a system service of some type and should always check that a PHP script is running. Maybe there is a way to assign a PHP script to a certain PID so that the monitor script that check for the PID in top... (4 Replies)
Discussion started by: elDeuce
4 Replies
Login or Register to Ask a Question