Execute commands from .bat file on Git Bash Terminal

后端 未结 2 1730
挽巷
挽巷 2021-02-12 13:36

I am newbie to Git bash.

Just out of curiosity trying to make a .bat file which contains commands(Dont know if Git Bash supports .bat file)

What I want to achie

2条回答
  •  滥情空心
    2021-02-12 13:48

    What I want to achieve is simply drag and drop this .bat file to Git Bash terminal and commands in the file get executed (Is it possible?).

    This is not possible, and probably will never be, because it's not a natural UX. Dragging a file from a file explorer to a Git Bash terminal should produce the absolute path to the file in the terminal. Then you can press enter to execute it. The natural way to execute a file in a file explorer is to double-click on it. (The file explorer may need configuration to allow the execution of .bat and .sh files on double-click.)

    My commands in .bat file

    cd "C:\Users\USER\abc\xyz"
    cd "C:\Users\USER\abc\xyz\pqr"
    export HOME="C:\Users\USER\some_directory"
    export HOME2="C:\Program Files\directoy"
    

    For one thing, this script looks artificial: cd /some/abs/path followed by cd /some/other/abs/path is a pointless statement.

    For another thing, the .bat extension should be used for DOS shell scripts, but the export command doesn't exist in DOS (it exists in Bash). So your example should be a .sh script, not a .bat script.

    Lastly, it's important to understand the distinction between executing a script and sourcing a script:

    • When you execute a script, for example with path/to/script.sh, the commands in it are executed in a child process. As such, commands that change the execution environment, such as changing the directory or variables, will apply only to the child process. In other words, the effect of cd and export commands will not be visible when the script exits.

    • When you source a script, for example with source path/to/script.sh (or . path/to/script.sh), the commands in it are executed in the current process. As such, commands that change the execution environment, such as changing the directory or variables, will apply to the current process.

    In other words, if you want cd and export commands to have an effect in the current shell, then you want to source the script, instead of executing.

提交回复
热议问题