Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
実行したシェルスクリプトのおいてあるディレクトリを取得する 実行したシェルスクリプトと同じディレクトリの下に、テンポラリのファイルを置いたりディレクトリを置いたりしたくなる事があると思うのだけど、そういったときにはそのシェルスクリプトを実行した時のカレントディレクトリに注意しなくてはいけない。 #!/bin/sh touch "./hoge" こんな風なシェルスクリプト(仮に hogehoge.sh とする)にすると、/tmp に居る状態で~/hogehoge.sh を実行すると /tmp 配下に hoge ファイルが作られてしまう。 どうするかというと シェルスクリプトのディレクトリを取得して、そのディレクトリをベースとしてやれば良い。 その為に、 dirname コマンドを使う。 #!/bin/sh touch `dirname ${0}`/hoge このようにするとシェルスクリプトが
/bin/shの実体としてはash(dash)、bash、kshの採用例が多い。どのシェルもBourne shellの機能に加えて、拡張機能を提供する。 FreeBSDなどの*BSD系のOSは、ashを/bin/shとして使っている。ashはPOSIX.1(POSIX:2008)にいくらかのBSD拡張機能を取り込んだシェルだ。メモリをあまり消費せず、高速に動作し、ほかのライブラリに依存することが少ない。従って、rootやレスキューシステムのインタラクティブシェル、システムのシェルスクリプトといった場面で採用されている。 Mac OS Xはbashを/bin/shに採用している。FedoraやopenSUSEなどのLinuxディストリビューションもbashを/bin/shに採用している。LinuxディストリビューションでもUbuntuやDebian、Linux Mintなどは、高速に動作する
zsh は zcompile コマンドにより中間バイトコードをあらかじめ生成し起動の高速化を図ることができる。だが一人で複数ユーザーを利用したりしていると、いちいち各ユーザーごとに zcompile するのがダルイし、どうせなら /etc/zsh あたりに共通のファイルを置きたい。また、ちょっとしたコード片を追加するときに plugins ディレクトリに放り込んでそのまま拡張できる仕組みが欲しい。 .zshrc を編集してもいいのだが、変更部分だけ独立していたほうが管理も楽になるだろう。このあたりの問題解決を目的としている。 目的 中間バイトコードをシェアして zsh の起動を高速化する。 プラガブルに .zshrc を拡張できる。 (コード片を plugins ディレクトリに放り込めば即反映) インストール先を指定できる。 (sudo が使えても使えなくても OK) ソースコード htt
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く