Windows, Linux에서 쉘스크립트에 익숙하지 않지만 쉘 명령어를 사용해야 하는 경우 닷넷코어만 설치 되어 있다면 Chell 라이브러리를 사용하면 쉘스크립트와 유사하게 스크립팅 할 수 있다.
비슷한 것으로 아래 라이브러리도 있다.
깃허브 저장소: https://github.com/mayuki/Chell
아래는 깃 명령어를 실행하는 코드이다.
var branch = await Run($"git branch --show-current"); |
아래처럼 프로젝트를 만든 후 실행을 dotnet run으로 실행하면 .cs 파일은 언제라도 수정하면 된다. 단 닷넷코어가 설치 되어 있어야 한다.
https://github.com/mayuki/Chell/blob/main/samples/GettingStarted.Basic.Windows/Program.cs
만약 dotnet 명령어가 아닌 CShell 명령어로 실행하고 싶다면 아래처럼 한다.
% dotnet tool install -g Chell.Run
% chell -e "Echo(DateTime.Now)"
9/1/2021 0:00:00 PM
% cat <<__EOF__ > MyScript.cs
var dirs = new [] { "foo bar", "baz" };
await Run($"mkdir {dirs}");
await Run($"ls -l");
__EOF__
% chell MyScript.cs
$ mkdir "foo bar" "baz"
$ ls -l
total 8
drwxr-xr-x 2 mayuki mayuki 4096 Sep 1 00:00 baz/
drwxr-xr-x 2 mayuki mayuki 4096 Sep 1 00:00 'foo bar'/
우리가 만드는 프로그램에서 CShell 라이브러리를 사용하면 외부 프로그램 실행을 쉽게 할 수 있다. 예를들어 서버 프로그램 배포 툴을 만들 때 git이나 svn 명령어를 실행해야 할 때 닷넷라이브러리의 Process 클래스를 사용하는 것 보다 CShell을 사용하는 것이 실제 명령어를 사용할 때와 비슷하게 사용할 수 있어서 더 좋다.
샘플 프로젝트를 보면 Windows, Linux에서 실행할 수 있는 예제코드가 있다.
https://github.com/mayuki/Chell/tree/main/samples
README.md 파일에 사용법이나 기능에 대한 예제코드가 여러개 있어서 보면 사용 방법은 쉽게 알 수 있다.
똑 CShell로 만든 코드가 잘 동작하는지 쉽게 확인하는 방법은 LinqPad와 같이 사용하면 더 좋다.