LoginSignup
1
2

More than 5 years have passed since last update.

シェルの $0 とsymlinkの合わせ技でコマンドを簡略化する

Last updated at Posted at 2014-12-14

$0 の挙動

シェルの $0 は、symlink越しで呼ばれた場合はsymlinkの名前に置き換わる

a.sh
#!/bin/sh

echo `basename $0`

このa.shをPATHの通ったディレクトリに配置し、そのまま実行するとa.shと表示される

このスクリプトに対して、同じくPATHの通ったディレクトリへln -s a.sh bとsymlinkを張り b を実行するとbと表示される。

これを応用すると諸々のコマンド実行を簡略化する事が出来る

ssh USER@server1というssh接続コマンドをserver1とサーバー名を入力するだけで実現する。

dossh.sh
#!/bin/sh

ssh USER@`basename $0` $*
$ ln -s dossh.sh server1

dossh.sh にはssh接続コマンドを記述し、サーバー名はbasename $0で受ける。このスクリプトをPATHが通ったディレクトリに置く。これに対して同じくPATHが通ったディレクトリに サーバー名(=server1)でsymlinkを張る。

これでserver1と入力するだけでserver1へのssh接続を実行することが出来る。

自分の場合以前は愚直にaliasを個別に切るという事をしていたのだが、この手法の方が管理もスッキリするし、諸々応用も効くのでオススメ

ブクマ

1
2
2

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
1
2