5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

cdせずに別ディレクトリでコマンドを実行

Last updated at Posted at 2020-01-02

初めに

Rust製のコマンドラインツール Exeat を作成しました。ディレクトリとコマンドを指定することでcdすることなく別ディレクトリでコマンドを実行することができます。

開発環境

macOS Catalina 10.15.2
Rust 1.40.0

Exeatの作成

Qiita初投稿です。
最近Rustを学び始め、なにかコマンドラインツールでも作ってみたいなーと思ってました。そこで今のディレクトリから別のディレクトリにいるようにコマンドを実行できたら便利だなと思い作ってみました。Rustで作るということでcargoを使ってプロジェクトを作成しました。

cargo new exeat --bin

ソースコードはGitHubで公開しています。
15行という非常に短いプログラムでファイルも一つしかありません。Rustでは標準ライブラリのstd::process::Commandで外部コマンドを実行することができます。またこのライブラリが非常に便利で、実行するディレクトリも引数も自由に指定することができます。ということで実現したいことすべてこのライブラリにまかせるだけで良かったです。

Exeatの使い方

cargoを使用しているので簡単にビルド、実行を行うことができます。

cargo run ~/rust ls -a

このように1個目の引数に実行したいディレクトリ、2個目以降の引数にコマンドとオプションを指定することができます。このコマンドだと ~/rustls -a を実行することができます。もちろんlsだったら引数でディレクトリを指定することができますが、普通だったらディレクトリ指定できないコマンドでもディレクトリを指定することができます。でもこのままだとプロジェクトがあるディレクトリでしかこのプログラムを実行できないのでcargoを利用してビルドしてパスを通してどのディレクトリでも実行できるようにしておきましょう。

cargo build --release

最後に

これからもRustで色々作れたらなーと思ってます。まだRust初心者なので間違ってることなどご教授いただけたら嬉しいです。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?