Cmder bash script executing

后端 未结 6 1074
太阳男子
太阳男子 2021-02-13 05:35

I created basic script in Windows.

#!/bin/bash

echo Hello

I am using Cmder, ConEmu derivative. I tried to change the priviliges with chmod, bu

相关标签:
6条回答
  • 2021-02-13 05:52

    On my own instance of Cmder, bash [filename] works just fine, and I believe much simpler:

    C:\Users\Conor O'Brien
    λ type test.sh
    echo Hello
    
    C:\Users\Conor O'Brien
    λ bash test.sh
    Hello
    
    0 讨论(0)
  • 2021-02-13 05:54

    You can put your own .sh files into $CMDER_ROOT/config/profile.d/*.sh directory, as the docs explain here

    0 讨论(0)
  • 2021-02-13 05:57

    If you want to be able to run the script by simply typing its name, a workaround is to create an alias and put it into your .bashrc such as:

    alias scriptName="bash /pathToTheScript/yourScript.sh"
    

    Or you can source a script inside your .bashrc and make it available through a function:

    source /pathToTheScript/yourScript.sh
    

    where the script is:

    #!/bin/bash
    function your_function()
    {
    yourCode
    }
    
    0 讨论(0)
  • 2021-02-13 05:57

    If you don't have time jump to The conclusion below:

    TL:DR: Here my toying with "Cmder > bash" on Windows to create a Global script:

    I've created a external script:

    a@DESKTOP /c/Scripts/
    λ vi test.sh
    

    with the content

    #!/bin/bash
    echo 'Can you see me now?'
    

    it can be executed from the same folder:

    a@DESKTOP /c/Scripts/
    λ ./test.sh
    Can you see me now?
    

    on creating a simbolink link:

    λ ln -s /c/Portables/Scripts/GlobalesBash/test.sh /bin/mytest
    

    it seems to work fine calling it with just the name:

    λ mytest
    Can you see me now?
    

    but if the original file gets modified:

    λ cat test.sh
    #!/bin/bash
    echo 'Yes, I see you'
    

    the changes are not reflected using the link:

    λ mytest
    Can you see me now?
    

    The conclusion:

    so the best option is creating the script directly on the folder /bin:

    λ cd /bin
    λ vi aloha
    λ cat aloha
    echo 'aloha!!!'
    

    and #!/bin/bash isn't even necessary with Cmder on Windows, and it gets executed successfully from everywhere in the Cmder bash:

    λ cd /c
    a@DESKTOP /c
    λ aloha
    aloha!!!
    
    0 讨论(0)
  • 2021-02-13 06:00

    I've noticed you can run bash from cmder. So I could do it like:

    > bash
    $ ./yourScript.sh
    

    or simpler

    > cat yourScript.sh | bash
    

    Disclaimer: New to cmder (just downloaded it) and Linux myself.

    0 讨论(0)
  • 2021-02-13 06:06

    It works just like on Unix shells

    sh path/to/your/script.sh
    
    0 讨论(0)
提交回复
热议问题