Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I want to write a login script in expect. But I want this to be reused in different other scripts. I want to make all the login commands part of a bash subroutine. ie instead of

expect_login.sh
#!/bin/usr/expect -f
spawn ....
set ....

I want this:

expect_login
{
    # put some necessary command to initiate expect program

    spawn ...
    set ...
}

so I would like to place this subroutine in one file/library that would be reused by many different scripts.

How can I do that?

Thanks

PS: Pardon my imprecise syntax of bash/expect. I just wanted to write in a pseudocode manner.

share|improve this question
1  
Do you want the login to stay in effect after the expect portion runs so that Bash commands can operate over the connection? You'd be better off doing everything in Expect. –  Dennis Williamson Sep 12 '13 at 2:08
    
Yeah I thought about that option too. That would be a feasible solution. But there is one scenario - the script will be used to access the iLO4 and read the different pieces of information. Now I can process all the information in the expect script. But what if another bash script is out there which needs to gain the same pieces of information? –  user285825 Sep 12 '13 at 2:34
1  
The expect script can pass the information back to the Bash script. The problem with trying to have the Bash script use an Expect script (or within a Bash function) is that Expect doesn't establish a persistent session and Bash has no concept of such things. At least both are true when qualified with the word "easily". I'm assuming iLO4 is HP's Integrated Lights Out system management feature - with which I'm unfamiliar. Don't they provide a protocol or API that you can query without having to use Expect? –  Dennis Williamson Sep 12 '13 at 2:59
    
Yeah you are right - they support the ipmitool. But the problem is ipmitool is generic which works across all vendors; while HP has specific CLP commands to get their specific features exclusive to iLO. Hence using ipmitool I can't obtain all the HP-specific information. –  user285825 Sep 12 '13 at 22:54
    
I would recommend that you ask separate, specific questions about problems with what you're trying to accomplish. The question as it stands now is overly broad and vague and too much like an XY Problem. –  Dennis Williamson Sep 12 '13 at 23:55

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.