Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

oh-my-zsh の環境で、peco-select-history が動かない - Qiita 追記 2014年 7月 7日 シェルスクリプトと書いてしまい漠然すぎましたが, ここで述べている ことが問題になるのは, .bashrc, .zshrcに関数, alias設定等がコピー される場合や, sourceコマンドでファイルを読み込む場合です. non-interactiveに実行されるシェルスクリプトについては特に 問題ないです. 問題点 そうしないと, 公開されたコマンドを自分の環境に導入した場合, aliasにより正しく動かなく場合があるためです. aliasをつけがちな コマンド(ls, grep等)がシェルスクリプトに含まれていると 特に問題が起こる可能性が高くなります. 例 pecoを使って カレントディレクトリのファイルをページャで開く 例を考えてみましょう. 単純に考
できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,本体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})
C言語でのプログラミングに入る前に、本章では、シェルスクリプトを用いたプログラミングについて説明します。 GUIを前提としたWindowsとは異なり、Linuxを含むUNIXシステムでは、基本的にすべての操作をコマンドラインインターフェースから行うことができます。 シェルは、コマンドラインプロンプトから入力されたコマンドを、Linuxシステムに受け渡す機能を持ったプログラムです。シェルは、ユーザーから入力されたコマンドを一つ一つ実行するだけでなく、ファイルに記述されたコマンドを逐次実行するインタープリタとしての機能も有しています。 シェルが解釈できる形式で記述されたプログラムを、シェルスクリプトと呼びます。 シェルは構造化プログラミングが可能で、その機能は非常に強力です。Linuxの豊富なコマンドと合わせることで、アプリケーションプログラムのプロトタイプをシェルスクリプトで記述することもで
シェルスクリプト Tips コーディング・スタイル ここに書かれている内容は、あくまで筆者の好みでありほぼ完全に主観ではあるが、経験的に行き着いたスタイルでもあるので推奨します。 スクリプトのヘッダを作成する 最近はあまり使用されることもないのかもしれないが @(#) の記述と、スクリプトの使用方法、および概要をファイルの前方にコメントとして記述しておくようにする。 ※ @(#) は what コマンドで参照する情報を記述するための記号です。詳細は「whatコマンドについて」を参照。 #!/bin/bash # # @(#) hoge.sh ver.1.0.0 2008.04.24 # # Usage: # hoge.sh param1 param2 # param1 - パラメータ1です. # param2 - パラメータ2です. # # Description: # hoge.shスク
<IT技術の処方箋:指定日付以前の古いファイルを削除したり移動する方法> システムを運用していると、 ログファイルやデータファイルなどが どんどん溜まっていきますね。 そんなファイル、いつかは移動したり削除する必要がありますね。 ●それには、findとxargsをうまく使うとコマンド一発で対処できます。 (例1) find ./ -mtime +50 -name "*.txt" | xargs mv --target-directory=./aaa ファイル名に.txtがついて、最後に修正されたのが50日より前のものを、 aaaというディレクトリに移動させる方法です。 (例2) find ./ -mtime +50 -name "*.txt" | xargs rm -f ファイル名に.txtがついて、最後に修正されたのが50日より前のものを、 削除する方法です。 (解説) xargsは、標
私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e
まず, 他のシェルをお使いの人にはごめんなさい. aliasコマンドの-sが使えるのは zsh 4.2.x- で, 他のシェルでは実装されていないと思います. あと, もう既に alias -s 知ってるよーって人は読まなくていいです. alias -s って何? 打ったコマンドの後ろ(suffix)を見て, 適当に宜しくやってくれるやつです. 次の例を見て下さい. ~$ echo "print ('hello, world')" > hello.py ~$ python hello.py hello, world ~$ alias -s py=python py=python ~$ ./hello.py hello, world ~$ Pythonのコードは python hello.py で実行出来ますが, お尻が py なら python を使います, とaliasしておけば, ./
最近、俄然、興味が湧いてきたコマンド。もし、欲しい機能に見合うコマンドがなかったら、自分で作るしかない。そのうち作ってみたいという希望もある。調べてみた。 作業環境 MacBook OSX 10.6.2 bash シェルスクリプトは今までも多少なりとも使っていたので、片言だがなんとか使っている。 基本 以下のスクリプトを~/Documents/hello.shとして保存した。 #!/bin/sh echo Hello, World! hello.shに実行権限を与える。 $ chmod +x ~/Documents/hello.sh パスを指定して呼び出せば、Hello, World!と表示された。 $ ~/Documents/hello.sh Hello, World! 引数の処理 有用なコマンドは、ほぼ間違いなく引数を伴う。 引数で渡されたデータを処理して、価値のある情報を出力してくれ
shell script を書くときの tips 2つ(初心者向け) shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくする set -e とすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HERE とすると % ./hoge.sh Died at -e line 1. % echo $? 255 となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 &
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く