wsl環境にmvswapを導入した話
ファイル名の交換コマンド: mvswap - シリコンの谷のゾンビ
ほぼこの方の通りに設定したが、Ubuntu(WSL)ではmktempが使えなかったのと、その他もろもろエラーを吐かれたので以下のようにコードを変更した:
#!/bin/sh TMPNAME=".tmp-hoge-fuga-piyo" if [ $# -eq 2 ] then mv $1 $TMPNAME mv $2 $1 mv $TMPNAME $2 fi
TMPNAMEを定めているところは、まあしょうがないと思おう。多分調べればmktempに相当する機能があるだろうがめんどくさくなった。
それから、このファイルを適当なディレクトリ(今回は/mnt/c/code/)にmvswapで保存し、pathが通っているフォルダ:
$ echo $PATH /home/(ユーザ名)/.local/bin:/home/(ユーザ名)/.nvm/versions/node/v16.0.0/bin:...(その他もろもろ)
のうちの、/home/(ユーザ名)/.local/binに移し、権限を755(rwxr-xr-x)に変更する:
$ cp /mnt/c/code/mvswap /home/(ユーザ名)/.local/bin $ sudo chmod 755 /home/(ユーザ名)/.local/bin/mvswap
あとは元記事同様本当にできているかを確認すればOK。
今後atcoder-cliが落としてきてくれたテストファイルを
/mnt/c/code/atcoder/ABC051-100/abc077/c/test$ mvswap sample-1.in sample-3.in /mnt/c/code/atcoder/ABC051-100/abc077/c/test$ mvswap sample-1.out sample-3.out
のようにすれば、容易に入れ替えることができる。前回qiitaに投稿した
Visual Studio Code with WSLでatcoder-cliを使いつつデバッグもできる環境構築 - Qiita
内ではデバッグ時の標準入力をsample-1.inに指定していたので、WAとなっているsampleファイルをmvswapでsample-1.inと交換すればそのサンプルケースでデバッグすることができるようになる。