Making a bash script switch to interactive mode and give a prompt

后端 未结 2 1636
渐次进展
渐次进展 2021-02-08 10:37

I am writing a training tool, it is written in bash to teach bash/unix.

I want a script to run to set things up, then to hand control to the user. I want it to be easi

相关标签:
2条回答
  • 2021-02-08 11:05

    Try making it an alias in your ~/.bashrc file. Add this to the bottom of ~/.bashrc:

    alias tutorial='. tutorial/bashrc'
    

    Then close and re-open your terminal, or type . ~/.bashrc to re-source it.

    To use this alias, simply call tutorial, and that will automatically get replaced with its alias, as though you had called . tutorial/bashrc.

    0 讨论(0)
  • 2021-02-08 11:07

    There are several options:

    • You start script in the same shell, using source or .;
    • You start a new shell but with your script as a initialization script:

    The first is obvious; I write a little bit more details about the second.

    For that, you use --init-file option:

    bash --init-file my-init-script
    

    You can even use this option in the shebang line:

    #!/bin/bash --init-file
    

    And then you start you script as always:

    ./script-name
    

    Example:

    $ cat ./script-name
    #!/bin/bash --init-file
    echo Setting session up
    PS1='.\$ '
    A=10
    $ ./script-name
    Setting session up
    .$ echo $A
    10
    .$ exit
    $ echo $A
    
    $
    

    As you can see, the script has made the environment for the user and then has given him the prompt.

    0 讨论(0)
提交回复
热议问题