LoginSignup
0
0

More than 5 years have passed since last update.

バックスラッシュで標準のコマンドを実行する

Posted at

概要

間違って実行して痛い目見たので、まとめ。

サーバーの設定によるコマンド実行の差分

サーバーのエイリアスの設定によっては複数サーバーのコマンド実行を行う場合は、独自のコマンドを使われてしまう可能性がある。(というか実際あって、障害を起こしかけた・・・)

リリースしたいコマンド
# 元からあるsampleディレクトリのの名前を変えて、
# sample2ディレクトリからsampleディレクトリにシンボリックリンクを貼りたい

mv ~/sample ~/stash_sample;ln -nfs ~/sample ~/sample2 
ssh先の.bashrc
alias mv=mv -i 

これによって確認が入ることになるが、確認のレスポンスをすることはリリースするコマンドの考慮入っていないため、最後までコマンドが実行されずに終わってしまう。さらに「;」が使われていることで、lnコマンドが実行される。(-nfsのオプションを使っていたことからもっとおかしなことになる)

このようなことを起こさないためには、エイリアスを適用しないようにする工夫が必要。

バックスラッシュが救世主

バックスラッシュ をつけるとどうやらエイリアスを無視して標準のコマンドを実行するらしい。
今回リリースしたかったコマンドを実際に利用する場合は、以下のように実行すればよかった。

本来リリースすべきだったコマンド
\mv ~/sample ~/stash_sample;\ln -nfs ~/sample ~/sample2 
0
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
0
0