タグ

bashに関するfudafootaのブックマーク (3)

  • シェルスクリプトでの$@の罠

    B! 39 0 0 0 シェルスクリプトを書いてる時に$@を使って ハマったのでそれについて。 $@と$* -fや-dの罠 まとめ $@と$* $@はシェルスクリプト 1 ではスクリプトや関数の中で全ての引数を表します。 $ f(){ echo $@;} $ f a b c a b c な感じ。 ここで、次の様なスクリプトを考えてみます。 atmark.sh 1 2 3 4 5 6 #!/usr/bin/env bash if [ "$@" != "" ];then echo "$@" else echo empty fi これを実行してみると $ ./atmark.sh a a $ ./atmark.sh ./atmark.sh: line 2: [: unary operator expected empty! $ ./atmark.sh a b ./atmark.sh: line 2

    シェルスクリプトでの$@の罠
  • Service停止できなくなったhttpdの全プロセスを強制終了する方法 | Hack

    実行コマンド名からPIDを取得する 2014年6月5日 インストールされているperl モジュール一覧から該当するモジュールがあるか探す方法 2014年4月15日 node.jsをAmazonLinuxでサービス化する 2014年6月4日 ファイルの更新日時だけを出力する 2014年6月25日 MySQLでInnoDBのバッファヒット率を計算する 2014年4月25日 httpdのプロセス数を確認する 2013年12月17日

    Service停止できなくなったhttpdの全プロセスを強制終了する方法 | Hack
    fudafoota
    fudafoota 2015/07/31
    PHPのexec待ちで終了できない悲しいhttpdさんが大量にいたのでこれで浄化した
  • bashの配列変数に関するTips - y-kawazの日記

    序文(飛ばしてよし) まず話は僕が書いてたスクリプトで、引数から"最後の"値だけを分離したものを使いたかったってのが始まりです。 最初の引数の分離なら shift でいけるんだが、最後をいきなり分離するのが直接は出来ないっぽいので、格闘の結果以下のように解決しました。 #!/bin/sh ARGS=("$@") echo "最後以外: ${ARGS[@]:0:((${#ARGS[@]}-1))}" echo "最後のみ: ${ARGS[((${#ARGS[@]}-1))]}" echo "最後のみ: ${ARGS[-1]}" # bash-4.2 以降なら負のインデックスが使える! 以下が上記スクリプトの実行結果です。 $ ./test.sh a b c d 最後以外: a b c 最後のみ: d やっていることは、まず引数をARGVという配列変数に詰めなおして、その後配列変数に対するスラ

    bashの配列変数に関するTips - y-kawazの日記
    fudafoota
    fudafoota 2015/07/18
    bashの記号の使い方ってかなり特殊に見える
  • 1