Cmder Bash скрипт выполняется
Я создал базовый скрипт в Windows.
#!/bin/bash
echo Hello
Я использую Cmder, производную ConEmu. Я пытался изменить привилегии с помощью chmod, но они одинаковы. Я не знаю, как я могу выполнить этот скрипт. Обычный способ Linux, который: ./hello.sh не работает, и ввод только hello.sh заставляет Windows пытаться открыть его, что плохо, так как я хочу это в консоли. Как выполнить этот скрипт в ConEmu/Cmder?
3 ответа
Я заметил, что ты можешь бежать bash
из cmder. Так что я мог бы сделать это так:
> bash
$ ./yourScript.sh
или проще
> cat yourScript.sh | bash
Отказ от ответственности: новичок в cmder (только что скачал его) и сам Linux.
Это работает так же, как на оболочках Unix
sh path/to/your/script.sh
На моем собственном экземпляре Cmder, bash [filename]
работает просто отлично, и я считаю, что намного проще:
C:\Users\Conor O'Brien
λ type test.sh
echo Hello
C:\Users\Conor O'Brien
λ bash test.sh
Hello
Если вы хотите иметь возможность запускать скрипт, просто набрав его имя, обходной путь - создать псевдоним и поместить его в свой .bashrc
такие как:
alias scriptName="bash /pathToTheScript/yourScript.sh"
Или вы можете найти скрипт внутри вашего .bashrc
и сделать его доступным через функцию:
source /pathToTheScript/yourScript.sh
где скрипт:
#!/bin/bash
function your_function()
{
yourCode
}
Если у вас нет времени, перейдите к заключению ниже:
TL: DR: Здесь я играю с "Cmder > bash" в Windows, чтобы создать глобальный скрипт:
Я создал внешний скрипт:
a@DESKTOP /c/Scripts/
λ vi test.sh
с содержанием
#!/bin/bash
echo 'Can you see me now?'
он может быть выполнен из той же папки:
a@DESKTOP /c/Scripts/
λ ./test.sh
Can you see me now?
при создании ссылки на simbolink:
λ ln -s /c/Portables/Scripts/GlobalesBash/test.sh /bin/mytest
кажется, что он работает нормально, называя его только именем:
λ mytest
Can you see me now?
но если исходный файл будет изменен:
λ cat test.sh
#!/bin/bash
echo 'Yes, I see you'
изменения не отражаются по ссылке:
λ mytest
Can you see me now?
Вывод:
так что лучше всего создать скрипт прямо в папке / bin:
λ cd /bin
λ vi aloha
λ cat aloha
echo 'aloha!!!'
а также #!/bin/bash
даже не требуется с Cmder в Windows, и он успешно выполняется из любого места в bash Cmder:
λ cd /c
a@DESKTOP /c
λ aloha
aloha!!!
Вы можете поставить свой .sh
файлы в $CMDER_ROOT/config/profile.d/*.sh
каталог, как объясняют здесь документы