タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

shellscriptに関するhorimislimeのブックマーク (9)

  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、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

    私が他人のシェルスクリプトから学んだこと | Yakst
  • シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog

    はじめに つい最近知った便利なデバッグ方法 (長年シェルスクリプトを書いているのに知らなかった。これが常識だったら恥ずかしい…) シェルスクリプトのデバッグでは echo で変数の中身を見るという原始的な方法をよく使うかと思います。 いわゆる プリントデバッグ というやつですね。 もう少し詳しいデバッグが必要な場合は、 set -x と set +x でデバッグしたい部分を囲むという方法もあります。 今回は プリントデバッグ で使う echo の代わりに typeset or declare を使うと良いというお話です。 プリントデバッグは typeset or declare を使おう typeset or declare は変数宣言などでよく使うコマンドですが、変数の中身を見るのにも使えます。 echo と比べて何が良いのかというと、変数の中身はもちろん変数名や変数の型も表示してくれ、

    シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
    horimislime
    horimislime 2013/04/26
    参考になる
  • [覚書]シェルスクリプトでスペースや空白を含むファイル名を処理したいの対策

    ファイル名に空白とか入っていると、ファイル名のリストが入った引数の変数をforで回したときに、空白でファイル名が分割されちゃって期待した動きにならないよね。 ファイル名に空白てかスペースがあっただけで処理で躓くって、シェルスクリプトってショボ過ぎじゃん。シェル力はもったいない IFS環境変数を使え 対策はフィールドセパレータ環境変数を設定するだけの事で、具体的にはIFSに改行をセットすれば良い。 IFSに改行(\n)をセットすることで、入力の一行を一ファイル名として容易に処理することが可能。 なお、IFS(IFS変数)とはInternal Field Separatorであり、安心の標準機能。 #!/bin/bash IFS=" " for FILE in `find . -type f -print` do md5sum "$FILE" done > hoge.txt (上記の場合重要な

    [覚書]シェルスクリプトでスペースや空白を含むファイル名を処理したいの対策
  • bashなどのシェル変数の値に改行を含める事は可能でしょうか?

    可能です. というか,やってみたら出来ることがわかると思います.こんなところで聞くより早い. なお,sh/bash系では改行文字は特にエスケープせずそのまま入れられます. aaa='bbb ccc' この回答への補足 クォートすればよかったのですね。分かりませんでした。 プロンプト、スクリプト内でご指示のようにセットした後でechoで出力しましたが、改行されませんでした。改行を表示するにはどのようにすればよいでしょうか。 補足日時:2006/08/18 17:29

    bashなどのシェル変数の値に改行を含める事は可能でしょうか?
  • シェルスクリプトでファイル存在確認 - fantasista_ikの日記

    bashの場合 「-e Liunx.txt」・・・Liunx.txtが存在しているか。 「-f Liunx.txt」・・・Liunx.txtが存在し、通常のファイルであるか。 「-r Liunx.txt」・・・Liunx.txtが存在し、読み取り可能であるか。 「-s Liunx.txt」・・・Liunx.txtのファイルサイズが0でなければ真。 - if [ ! -e Liunx.txt ]; then echo "Liunx.txtファイルがありません。" fi -

    シェルスクリプトでファイル存在確認 - fantasista_ikの日記
  • 日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → -d 'N days ago' オプションで N 日前の日付を取得できる。 Linux では拡張された GNU date コマンドが使用できるので、簡単に過去の日付を取得できる。 $ date 2007年 6月 2日 土曜日 23:05:20 JST #↑そのまま実行すると当日の日時が表示される。 $ date -d '1 days ago' 2007年 6月 1日 金曜日 23:05:31 JST #↑1日前を指定すると、現在日時から24時間前の日時が表示される。 「GNU date」が使用できない場合 → 一時的に環境変数 TZ を変更した上で date コマンドを実行する。 古い UNIX マシンなどでは、「GNU date」が使用できない場合が多い。そういった環境では、一時的にタイムゾーンを変更して date コマンドを実行することで、過去の日付を取得することができる。 $ e

    日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 簡素なif文は一行で書く - 半径5メートル

    自分用のツールなど規約のないものなら、処理文の短い分岐は一行で書いたりします。 #!/bin/sh target=./hoge.txt if [ -f ${target} ]; then rm -f ${target} ;fi 追記:(2/4) コメント欄でもっとcoolな書き方を教えていただきました。ありがとうございます! [ -f $target ] && rm -f $target 追記:(2/13) こんなのもありなんですね。まるで三項演算子みたい。 [ $hoge = $foo ] && echo "true" || echo "false"

    簡素なif文は一行で書く - 半径5メートル
  • sendmailでメール送信するスクリプト – OpenGroove

    スクリプトという程のものでもないのだが・・・、 他の処理と組み合わせてメール送信する時なんかに呼び出して使いたいな、と。 例によってメモしておかないと忘れるから。 #!/bin/bash /usr/sbin/sendmail -t << EOF From: 送信元アドレス Subject: メールタイトル To: 送信先アドレス (メール文を記述) EOF Toの後はCc:, Bcc: も追加可能。また送信元アドレスは任意のアドレスにすればよい。つまり送信元アドレスを変更することが可能。 多数の宛先に一斉にメールを配信したかったら、こんな感じで。mail_list.txtに送信先メールアドレスを記述しておく。メーリングリストを作るまでもない場合なんかに利用。 #!/bin/bash MAIL=`cat mail_list.txt` for user in ${MAIL}; do /usr

  • 1