約 2,536,225 件
https://w.atwiki.jp/3751ceryneia/pages/69.html
『──バカ。俺の心配をする前に自分の心配をしろ』 【名前】Bash・(Tolio)・Irving《バッシュ・(トゥリオ)・アーヴィング》 【年齢】24 【性別】男 【種族】純粋なフルングニル族と神聖王国オートクレール属州民のハーフ 【出身国】機工帝国フリームスルス 【"元"所属軍団】第1軍団・第1コルホス所属の百人隊長。現在は無職の帝国市民。 【"元"所持勲章】単独戦果栄誉勲章、一等陸軍歩兵勲章、三等陸軍機工勲章、ニヴルヘイム掃討勲章、乙三種勲章。 【容姿】所々跳ねた黒髪のショートヘアーに、光の無い死んだような黒い瞳。左頬には傷がある。 服装は黒いインナーシャツに、灰色のジャケットを前側を開けた状態で着ている。下半身はカーキ色の長ズボンに、黒色のブーツ。外を出歩く際は更にその上から茶色のローブを羽織り、フードを被ることで、自分の顔を隠している事が多い。 胸から下げている四角いロケットペンダントには、かつての部下達との記念写真が入っている。 身長は185cmで、体格は太すぎず細すぎずだが、引き締まった無駄の無い体つきをしている。服で隠れているが、体のあちこちに軍属時代に負った傷があったりする。肌の色は健康的な肌色をしている。 【過去】純粋なフルングニル族であり帝立機工兵器工廠で働く父、神聖王国オートクレール出身の属州民である母の間に産まれ、帝都メカルヴァの通称"外郭"で育った。 属州民の血が入っているから、と理由で色々な場所で差別を受け続けた為に、何としても見返してやる、という気持ちで親の反対を振り切り、半ば家出の様な状態で帝立士官学校に入校。 他の生徒達からも属州民の血が入っているという理由で差別を受けたり、避けられたりで、友人も殆ど出来ることはなかったが、中々の成績を残して卒業し、機工大戦末期に第1軍団、『ヒグレ・ピルス・クィントゥス』が率いていた当時の第1コルホス所属の一般軍団兵として入軍。 当時の武装は2丁の拳銃と2振りの両刃片手剣。どちらも一般支給装備。入軍した当初は今よりもかなり冷めた性格だったらしく、地位の上昇と昇給の為だけを考え、それこそ機工兵器のように、ただ冷徹に同盟軍兵士を殺し、機工兵器が主力の中、一般歩兵としてめざましい戦果を挙げていた。 その過程で付いた帝国軍内での異名は『生きる機工兵器』、『鐵血』などの若干不名誉なものや、『筆頭突撃兵』、『陸のエース・オブ・エース』といったものまで様々。 中でも能力の特徴や彼個人から受けた損害の大きさから、同盟軍兵士からは警戒と畏怖を込めて専ら『死灯』のバッシュという異名で呼ばれており、それが帝国軍に伝わってからはそう呼ばれることが多くなった。 彼の高い単独戦闘力は上層部にも行き届き、一般軍団兵、それも属州民の血が流れる兵士としては異例の"専用武器"、彼の保有する能力に合わせて開発された、"砲火剣"(カノンブレード)が支給される。 彼の戦果はその後、更に積み重ねられ、機工大戦が終結するまで、彼は一般軍団兵として前線で戦い続け、単独で多くの同盟軍兵士を殺害するなど、個人で大きな戦果を挙げた者に授与される勲章、『単独戦果栄誉勲章』の他、『一等陸軍歩兵勲章』、『三等陸軍機工勲章』を授与された。 そして、暫くの月日の後。ニヴルヘイム地方で吸血鬼族を中心としたレジスタンスが武装蜂起。終戦直後の為、大規模な軍隊を動かすのが難しく、多少の機工兵器とごく少数の兵士が鎮圧に向かうこととなる。 人数を抑えるため、単独で高い戦闘力を持つ兵士、として数少ない『単独戦果栄誉勲章』を持つ歩兵、バッシュ、入軍当初から彼の上官に当たる筆頭千人隊長、『ヒグレ・ピルス・クィントゥス』ともう1人の計3人が指名され、レジスタンスを見事鎮圧した。 その3名には後に『ニヴルヘイム掃討勲章』が授与され、一階級の昇進が為される予定だったが、属州民の血が流れているバッシュを昇進させて良いのか、と問題になってしまう。 だが、共に肩を並べレジスタンスと戦い、上官のクィントゥス大隊長と親しくなった事で、それなりの良家である彼女からの進言もあり、バッシュは特例として、第1コルホス所属の百人隊長に昇格した。 上層部からの反発は勿論消えず、その中初めて部下を持った彼だが、彼の下に付いた軍団兵達は徴兵された属州民が多く、また純粋なフルングニル族の兵士も、以前まで彼と同じ立場で、共に並んで戦っていた為に、正反対に部下からの反発は殆ど無かった。 当初は部隊が受ける被害よりも敵に与える損害を重視して中隊を指揮するような性格だったが、ニヴルヘイムで共に戦った時から気に掛けて貰っている"クィントゥス陣営隊長"や、慕ってくれる部下達と触れ合っていく内に、少しずつ仲間を大事に、大切に思う様になっていった。 その後は、中隊の指揮でも中々の辣腕を見せ、魔物の掃討やレジスタンスの鎮圧を経て、乙三種勲章を授与されている。 しかし今からおよそ1~2年前。"鉄道廃墟 ウルス・ラグナ"にて、スキールニル族を中心とした魔術師達が蜂起を企てているという情報が帝国軍に届く。 元々、ウルス・ラグナはかの機工大戦の激戦地であり、同盟軍により多く魔術が使われた為、強力な飛魚種の魔物が生息する"ゾーン"でもある。その為、第1軍団の中隊を数隊合同で掃討に向かわせる予定だったが、即座に動ける中隊がバッシュ率いるアーヴィング中隊しか無く、彼等を先行させた後、応援として他の中隊を送る手筈となった。 しかし実際にウルス・ラグナに来てみれば、蜂起勢力の姿が全く見えず、無闇にゾーン内に突入するのは危険と判断したバッシュは、指揮する中隊をゾーン付近で待機させ、単独でウルス・ラグナへと侵入し蜂起勢力の動向を確認することにした。 ───しかし、それこそが愚策。大きな墓穴だったのだ。彼が中隊を離れて数分後、待機していた中隊に突如攻撃魔術の雨が降り注ぐ。蜂起勢力は入り口地点近くの物陰に隠れ、待ち伏せし魔術の集中砲火を浴びせるという罠を仕掛けていたのだ。 彼が急ぎ中隊を待機させていた地点に戻ってきた頃には、既に蜂起勢力と応援に駆け付けた他中隊との戦闘が開始されており、彼が指揮していた中隊は...魔術の集中砲火を受けほぼ全滅してしまっていた。 ウルス・ラグナでの蜂起鎮圧自体は成功したが、帝国にとっても中隊1つが全滅したのは大きく、また強いショックと心に深い傷を負ったバッシュは、その後、帝都メカルヴァの第1軍団タワーに帰投。兵舎にある己の自室に引きこもり、塞ぎ込んで、一切職に復帰しようとはしなかった。 そして一ヶ月が経っても自室から出てこようとしなかったバッシュに、遂に上層部からの対応が決定する。それは、バッシュを軍隊から強制除籍させるというもの。 元々属州民の血が流れる彼を百人隊長とするのは上層部からの反発が大きかった為、今回の中隊全滅という失態を理由に、彼を軍から除籍させた後、新聞やニュースなどで彼の犯した"無能な百人隊長による中隊全滅"という失態が見出しに、共に容姿と名前までもが大々的に報道されてしまう事になった。 己の軍服や専用装備は回収され、兵舎を追い出された彼は、先ずは両親が住む"外郭"の自宅へと向かったが、既にそこには両親どころか、彼の住んでいた家も無かった。 消息不明となった家族を探す気も起きなかった彼は、属州民居住階層のボロ家を借りて住み着いた。既に彼の悪名は国全体に広がっており、外を歩く度に強い差別を受ける為、フードが付いたローブを羽織り、顔を隠して生活するようになった。 そして今でも、彼は属州民居住階層にて、密かに生活を続けている。 ...止まってしまった彼の時間は再び動き出せるのか。それは誰にも分からない。 【性格・補足】"死んだ瞳"と形容される、暗く淀んだ光の無い黒瞳が印象的な青年。元フリームスルス第1軍団の百人隊長だったが、現在は軍を辞め(強制除籍)、属州民居住階層で過ごしている。 属州民の血が流れている事以前に、軍属時代に犯した失態が大々的に報道されてしまっており、顔を隠す為のフードを被らずに外に出ることは殆どない。 軍属自体に稼いだ金はとうに底をついており、日雇いの仕事をこなしたり、稀に身分を詐称してケリュネイア各国で冒険者として活動したりなどして、生きていくだけの金を稼いでいる。 自分をかなり卑下してしまっており、第三者からの強い好意などは『俺じゃああんたと釣り合わないから...』と、受け取ろうとはしないだろう。 軍配属当初は今と比べかなり冷徹な性格だったらしく、軍内で『生きる機工兵器』『鐵血』などの異名で呼ばれていたが、その後、色々な人と触れ合う内に現在の優しい性格になった。 軍属時代の知り合いからは"ほっとけない病"と言われる程のお人好しで、困っている人を見るとそちらの方へ方向転換、解決するまで人助け、といった行動が良く見られ、本来の目的や目的地に到着するのが大幅に遅れる、というのは日常茶飯事。 自分の事よりも他人の事を優先し、人の事はお節介な程に守ろうとし、自分の事は無頓着。ある程度仲良くなった友人には、心の中でかなりの仲間意識を抱く為、そんな友人を傷付ける奴を非常に嫌う。傷付けた相手には、本気で殺意を向けることもあるだろう。 目が死んでるが一応しっかりと笑うことはでき、第一印象では目が死んでるけど、意外に器用で家事は得意なお兄さん、といった感じだろうか。 まだ、子供が好きな一面を持ち、属州民居住階層に存在する、身寄りのない子供達の為の孤児院『リーベ』に良く顔を出しては、料理を振る舞うなどしていたり。子供達からは『バッシュ』と呼び捨てにされたり、『バッシュおじさん』呼ばわりされており、非常に慕われている。 父が帝立機工兵器工廠で働いていたからか、機工兵器の構造には非常に詳しい。一般的な軍用車両の他、一応第1軍団の有人機工兵器なども操縦は出来る様だが、あまり得意ではないらしい。 その他、趣味と呼べるものは...料理以外に殆ど無いが、唯一ハーモニカが趣味と呼べる趣味だろうか。稀に演奏している姿が見られるかもしれない。 ...また、これは軍属時代に彼と親しかった人なら知っている事だが、心の底、芯には熱いものを秘めている。 【長所】能力使用時の単独戦闘力・戦闘継続力の高さ。 家事全般が得意。 他人に対する優しさ。 手先などがかなり器用で、大抵の事はそつなくこなす。 【短所】帝国内での立場の低さ。 自分への関心の低さ。 能力使用状態・後のデメリットが大きく、専用武器が能力使用状態でないと完全に扱えないこと。 性格・人付き合い的な意味で若干不器用。 【好きなもの】料理。幼い頃から料理はこなしていた事もあり、軍属時代では部下やとある上官に振る舞っていた。味の方も完璧で、一流シェフが作るような豪勢なものは作れないものの、割と一般的な料理に関しては料理人を唸らせる程の腕前を誇る。お菓子作りも得意である。 【嫌いなもの】自分。大切な仲間達を己のミスで殺したも同然の彼は、自分の事をとことん嫌っている。自殺して苦しみから逃げようとした事もあったが、仲間達へのせめてもの償いとして、軽蔑の視線や置かれた現状など全てを己への"罰"として、総て背負って今も生きている。 【現在の武器】極普通の拳銃が二丁。そして己の体を使った格闘術。その場にあるもので利用できるものは利用していくスタイル。殆ど戦うことは無くなったが、2丁拳銃を連射しながら蹴りや肘鉄、頭突きに銃での殴打など銃撃と格闘を交えた戦闘スタイルは軍属時代から変わっていない。予備の大振りなナイフを一本所持している。 【軍属時代の武器】"砲火剣"《カノンブレード》。 正式名称は《砲撃機構搭載片刃重剣》 バッシュの為に開発・製造された機工兵器にして専用武器。所謂"バスタードソード"が元に作られており、片手剣にしては長く、刀身も肉厚で、重量もかなりのもの。その為、両手でも扱えるように柄は長く作られているが、バッシュはこれを"二刀流"で軽々と振るい、完璧に使いこなす。 一般の兵士であれば両手で振るうのが精一杯である所だが、この武器にはもう1つ、特殊な機構が搭載されている。それは"砲撃機構"だ。 帝国第1軍団がほこる陣営隊長、かの"毒入りミルクティー"、『ヒグレ・カスト・クィントゥス』の専用武器、"銃細剣"《ガンレイピア》とは似て非なるもので、あちらが反動を抑える為に試行錯誤を繰り返していたのとは反対に、こちらは反動を無視し、威力のみを重視して開発された。 "銃"と"砲"と形容される通り、こちらの"砲"は非常に大きい。片刃である刀身の刃が付いていない側に、黒く大きな砲身が付属している。柄に付属した引き金を引く事で砲弾が発射される。 弾の種類は3種類あり、着弾地点で大きな爆発を起こす通常の"爆裂弾"と、威力と射程が弱まったものの、広範囲に被害を与える"爆裂散弾"、爆発耐性があったりした場合や、被害をあまり与えたくない時に使う、金属製の太い針の様なものを射出する"貫通弾"が存在する。 装填数は合計5発で、薬莢の排出も撃つ度に砲身側面部から自動で行われる。装填時は側面のレバーを引く事で、上部がスライド方式で開くため、其処から一発一発手込め方式。 また、通常の砲撃では効果が無いような相手には最後の手段として『フルバースト』と呼ばれる攻撃方法が存在する。対象に刀身を突き刺し、内部の砲弾全てを一気に爆発させるというもので、圧倒的な破壊力を誇るものの、その際に使用したカノンブレードが無事である筈もなく、武器を犠牲にする事になる諸刃の剣だ。 尚、砲撃の際の反動はありえない程に強く、バッシュですら能力を使っていなければ一発で腕の骨に皹が入る程。 その為、軍追放時に回収された2振りと予備のカノンブレード達は使い手が現れずに今も保管庫で眠り続けている。 【能力】"命灼く死灯"《ライフ・オブ・ライツ》。 発動条件は無く、彼が"使う"と決意すれば、いつでも発動が可能な、彼特有の能力。能力使用時には瞳が赤く染まり、僅かに輝く。 赤い光を揺らめかせながら、戦場で次々と敵兵を殺していく姿から、死の灯火。..."死灯"のバッシュ、と同盟軍兵士やそれを耳にした帝国軍兵士から異名で呼ばれていた。 能力が発現すると、身体能力が著しく向上し、生身の人間とは思えないような力を発揮できるようになる。その力の強さは本当に異常であり、鉄格子程度であれば何とかねじ曲げる程。 そして痛みや恐怖、戦いに対する忌避感といったものに対する感覚が異常なまでに鈍くなり、どんな致命傷を受けても、死ななければ決して歩みを止めないなど、殆ど痛みなどは感じなくなるらしい。 しかし、致命傷に耐える力はあっても、回復力が上がるわけでは無いので、能力が解除された瞬間激痛には襲われるし、怪我は治らないため治療もしっかりと受けなければいけない。 しかも、痛みと恐怖心が鈍くなっている影響から、自分の安全よりも敵に与える危害を優先する様になる為、危険な攻撃を避けようとする行動を取りにくくなり、普段なら避けられるような攻撃も受けてしまい、無駄に怪我を負ってしまうデメリットも。 そして、"命を灼く"と称される通り、能力使用には自身の生命力を消費するようで、使いすぎれば段々と体の調子が悪くなっていき、いつかは死に至る。(既に彼の体は内臓などの働きが弱くなっており、医師に言わせればボロボロ、と呼ばれる程にまで副作用が進行している。) 尚、軍を離れてから、能力はほぼ使っていない。 【SV】『...俺は、バッシュ・アーヴィングだ。...そうだよ、"あの"バッシュだ。───幻滅、したか?』 『はは...料理とかは...割と得意でさ。昔よく、......仲間や上官に菓子を作ってやってたりもしてたんだ。』 『──バカ。俺の心配をする前に自分の心配をしろ。...お前にはまだ帰る場所もあるし、ちゃんと未来があるんだ。...俺の事は良いから、お前だけはしっかり生きて帰るんだ。』 『...心配...かけやがって...っ!!俺は...お前が居なくなっちまったかと思って...また、一人になっちまうと思って...っ!...ばかやろう...こんな無茶、しないでくれ...。...一人にしないでくれよ...っ』 『俺じゃ...きっとお前を守りきれない...。もう軍属ではないし...知ってるだろ?俺は、以前に仲間達を、俺のせいで失ってるんだ。また仲間を作っても...その仲間を不幸にするだけだよ。───他に、きっとお前に相応しい人が居る筈だ。』 『...お前...。俺の大切な"仲間"を傷つけて...生きて帰れると思うなよ...。...お前は此所で...絶対にぶっ殺してやるからなぁ...っ!!』 【勲章説明】 単独戦果(栄誉)勲章 種類 単独戦果<単独戦果栄誉 現在の所有者 バッシュ(単独戦果栄誉) 備考 所属軍団や使用武装問わず、単独で多大な戦果を挙げた者に与えられる。単独戦果勲章の所持者はそれなりの数が居るが、単独戦果栄誉勲章となると、指で数えられる程度しか授与されていない。 陸軍歩兵勲章 種類 三等<二等<一等 現在の所有者 バッシュ(一等陸軍歩兵) 備考 第1軍団において、一般の歩兵として高い戦闘能力を持ち、歩兵として多大な戦果を挙げたものに与えられる。所持者は陸軍における生身での戦闘のスペシャリストである事を意味する。 陸軍機工勲章 種類 三等<二等<一等 現在の所有者 バッシュ(三等陸軍機工) 備考 第1軍団において、"L002フレイ"を初めとした、操縦が必要な有人機工兵器に搭乗し、多大な戦果を挙げたものに与えられる。所持者は陸軍における有人機工兵器操縦のスペシャリストである事を意味する
https://w.atwiki.jp/ozuka/pages/16.html
サンプル (前に使っていたもの。一緒に働いてた人からの貰い物です。ありがとうございました。) #--------------------------------------- # export #--------------------------------------- # follow bash original #PS1= \s-\v\$ if [ ! -z $BASH ]; then # follow bash only PS1= [\u@\W]\$ ; export PS1; stty -istrip else # follow bash / ksh PS1= [$LOGNAME@${PWD##*/}]$ ; export PS1; EDITOR=vi; export EDITOR; fi; #--------------------------------------- # alias #--------------------------------------- alias c= clear alias ll= ls -le alias la= ls -lae alias lsd= ls -lae | sort +5 alias lss= ls -lae | sort +4 alias p= ps -ef alias pp= ps -ejf # alias ee= vi alias vv= vi -R alias erc= vi ~/.bashrc alias rrc= . ~/.bashrc alias vvm= view ./makefile alias vvsh= view ./*.sh alias vvc= view ./*.c alias vvconf= view /-/-/-/-/system.conf # alias rm= rm -i #--------------------------------------- # function #--------------------------------------- hh() { cat __DOC__ hh hhc ffind [path] [exp] ffgrep [path] [exp] fffgrep [path] [exp-filename] [exp-grep] today now sd tzc [filename] [exclude-file] tzt [filename] [NA.] tzx [filename] zipr [filename] [path] {-i [exp]} __DOC__ alias echo "" } hhc() { cat __DOC__ man [keyword] | col -bfx hoge.txt diff -C 1 [file1] [file2] touch -t YYYYMMDDhhmm.ss [file] __DOC__ } ffind() { #if [ "$1" == "" ]; then if [ -z $1 ]; then echo ffind [path] [exp] else find $1 -type f | grep $2 fi; } ffgrep() { if [ -z $1 ]; then echo ffgrep [path] [exp] else find $1 -type f | xargs grep $2 fi; } fffgrep() { if [ -z $1 ]; then echo fffgrep [path] [exp-filename] [exp-grep] else find $1 -type f | grep $2 | xargs grep $3 fi; } today() { date +%Y%m%d } now() { date +%Y%m%d-%H%M%S } sd_help() { cat __DOC__ tst /-/-/-/-/tst bkup $HOME/-/-/bkup bin /-/-/-/-/bin conf /-/-/-/-/conf src /-/-/-/-/src inc /-/-/-/-/include lib /-/-/-/-/lib file /-/-/-/-/file webap /-/-/-/-/webap log/-/-/-/-/log @etc /etc @init.d /etc/init.d @ora $ORACLE_HOME @ora.bin $ORACLE_HOME/bin @ora.net $ORACLE_HOME/network/admin __DOC__ } sd () { case $1 in "tst")cd /-/-/-/-/tst;; "bkup")cd $HOME/-/-/-/-/bkup;; "bin")cd /-/-/-/-/bin;; "conf")cd /-/-/-/-/conf;; "src")cd /-/-/-/-/src;; "inc")cd /-/-/-/-/include;; "lib")cd /-/-/-/-/lib;; "file")cd /-/-/-/-/file;; "webap")cd /-/-/-/-/webap;; "log")cd /-/-/-/-/log;; "@etc")cd /etc;; "@init.d")cd /etc/init.d;; "@ora")cd $ORACLE_HOME;; "@ora.bin")cd $ORACLE_HOME/bin;; "@ora.net")cd $ORACLE_HOME/network/admin;; "")sd_help;; *) echo [$1] is unknown!! sd_help;; esac } tzc() { if [ -z $1 ]; then echo tzc [filename] [exclude-file] else tar cvf - $2 | gzip $1 fi; } tzt() { if [ -z $1 ]; then echo tzt [filename] else gzcat $1 | tar tvf - fi; } tzx() { if [ -z $1 ]; then echo tzx [filename] else #gzcat $1 | tar xvf - echo NA. fi; } zipr() { if [ -z $1 ]; then echo zipr [filename] [path] {-i [exp]} elif [ -z $3 ]; then zip -r $1 $2 else zip -r $1 $2 -i $3 fi; }
https://w.atwiki.jp/javamock/pages/55.html
for Javaにおいてfor文は繰り返し処理の制御を行います。 for文は以下のように記述します。 for (初期設定; 条件【boolean型データ】; 処理, 処理, 処理, ...) { 処理 } また、拡張for文は以下のように記述します。 for (データ型 変数名 コレクション型データ){ 処理 } for 使用例 1 ForSample1.java class ForSample1 { public static void main(String[] args) { for (int i = 0; i 10; i++) { System.out.println(i); } } } 実行結果 C \java javac ForSample1.java C \java java ForSample1 0 1 2 3 4 5 6 7 8 9 以上のように条件がtrueの間だけforのブロック内の処理が繰り返されます。 for 使用例 2 使い方はおかしいかもしれませんがこんなこともできるみたいです。 ForSample2.java class ForSample2 { public static void main(String[] args) { for (int i = 0; i 10; i++, System.out.println(i)) ; } } 実行結果 C \java javac ForSample2.java C \java java ForSample2 1 2 3 4 5 6 7 8 9 10 for 使用例 3 拡張for文の例です。 ForSample3.java import java.util.List; import java.util.ArrayList; class ForSample3 { public static void main(String[] args) { List String arrayList = new ArrayList String (); arrayList.add("for1"); arrayList.add("for2"); arrayList.add("for3"); for(String list arrayList) { System.out.println(list); } } } 実行結果 C \java javac ForSample3.java C \java java ForSample3 for1 for2 for3 for 使用例 4 拡張for文の例です。 ForSample4.java class ForSample4 { public static void main(String[] args) { String[] arrayData = new String[3]; arrayData[0] = "for1"; arrayData[1] = "for2"; arrayData[2] = "for3"; for (String array arrayData) { System.out.println(array); } } } 実行結果 C \java javac ForSample4.java C \java java ForSample4 for1 for2 for3 以上のように拡張for文は配列やコレクション型などで使用するときに便利です。
https://w.atwiki.jp/skmt200x/pages/156.html
BASHスクリプトにおけるメッセージング 目的 どうしておきたいか? 出力内容のフィルタ 標準エラー メッセージングのログ出力 コマンド・処理のログ出力補足 パイプ処理した場合のコマンドの戻り値について コマンド・処理の標準エラーのコンソール出力・ログ出力の扱い方 スクリプトのメッセージング・構造に関する方針1つ1つのステートメントで記述する方法 処理全体を関数化し、関数の戻りに対して、上記のメッセージング・ログ出力の処理を記述する方法 スクリプトでのメッセージング設計・実装に関して内部で呼び出してるコマンドの出力について TOPへ編集 目的 シェルスクリプトと言えども、メッセージング(コンソール出力・ログ出力)は割と重要なので、比較的どんな場合でも使えると思われる方針についてまとめてく。 どうしておきたいか? コンソールには最低限のコマンドを実行したユーザーに意味のあるメッセージのみ伝える。 ただし特定のタグ等でメッセージのフィルタさせることができること。 標準出力は捨てて、標準エラーのみ確認したいケースのみ対応できること。 ログには基本的に全ての内容を記録する。 ただし特定のタグ等で出力にフィルタさせることができること。 出力内容のフィルタ 基本的にはgrepでフィルタする。 echo "INFO any message" | grep "INFO " (結果) INFO any message TOPへ編集 標準エラー エラーについて標準エラーに出力する。 echo "ERROR any error statement." 2 | grep "INFO " (結果) ERROR any error statement. 尚、標準エラーは(標準出力にリダイレクトしない限り)|渡しの影響を受けないので、必ずユーザに通知させることができる。 TOPへ編集 メッセージングのログ出力 基本的にはリダイレクトを使う。 メッセージ出力と同時に行う場合はtee -aを用いる。 echo "INFO any message" |tee -a output.log | grep "INFO " (結果)コンソールおよびログに下記のように出力される。 INFO any message ちなみにこのパターンでは、コンソール出力しないもののログ出力することも可能。 echo "ERROR any message" |tee -a output.log | grep "INFO " (結果)ログのみに以下のように出力される。 ERROR any message このパターンによりデバッグやトレース的なメッセージを埋め込むことが可能。 TOPへ編集 コマンド・処理のログ出力 基本的にはリダイレクトを使う。 メッセージ出力と同時に行う場合はtee -aを用いる。 ls -la | tee -a output.log | grep "INFO " (結果) ※上記例は条件に合致しないので、ls -laの結果がログのみに出力される。 補足 パイプ処理した場合のコマンドの戻り値について コマンドの結果を|渡しした場合の注意点として、$?によるコマンドの戻り値が取得できなくなる点がある。 この場合は${PIPESTATUS[n]}を使うことで、各コマンドの戻り値を検査できる。 例えば ls -la not-found |tee -a output.log | grep "INFO " の場合 echo ${PIPESTATUS[@]} 2 0 1 順番に「ls -la not-found」の戻り値、「tee -a output.log」の戻り値、「grep "INFO "」の戻り値となる。 尚、PIPESTATUS環境変数は生存期間が、|を使ったコマンド呼び出しの直後のみであるため、|渡しした各コマンドの戻り値が必要な場合は、工夫が必要。 調べたら以下のような感じでコピーしておける模様。 declare -a REMAIN=(${PIPESTATUS[@]}) TOPへ編集 コマンド・処理の標準エラーのコンソール出力・ログ出力の扱い方 コマンド処理が中断されるような状況では、標準エラー出力されても良いかもしれないが、検査処理等でエラー前提の場合まで標準出力をそのまま出すのは望ましくない。 一方で、検査結果がエラーであった旨はログに残したい。 以下のようにかなりややこしい方法で、メッセージング&ログ出力する必要がある模様。 { { ls *.txt | tee output.log 3; } 2 1 | tee error.log 1 2;} 3 1 順番に見てくと (1) コマンドの標準出力結果をログにのみ出力 ls *.txt | tee output.log 3; の部分で、まず「ls *.txt」コマンドの標準出力をログに出力しつつ 3にリダイレクト (この時点では、画面には出力されていない)。 (2) コマンドの標準エラーをログ出力しつつ、標準エラーに出力。 { ~ } 2 1 | tee error.log 1 2; コマンド結果をteeで拾うために、標準エラーを標準出力にリダイレクト。 そのままログ出力・標準エラー出力。 (3) コマンドの標準出力を標準出力 { ~ } 3 1 上記の(1)で 3にリダイレクトした内容を、再び標準出力にリダイレクト。 こうすることで、標準出力と標準エラーを分けたままファイル出力が可能。 個人的にはファイル出力は分ける必要がなく、teeでファイル出力を行いつつ、標準出力/標準エラーと出したいため、この方法が最適であった。 以下のサイトを参考にした。 標準出力と標準エラー出力を別々のファイルと画面に出力する TOPへ編集 スクリプトのメッセージング・構造に関する方針 1つ1つのステートメントで記述する方法 処理を上から順番に処理する際、都度メッセージング処理を記述する。 { { ls *.txt | tee -a output.log 3; } 2 1 | tee -a output.log 1 2;} 3 1 細かい制御ができる反面、非常に冗長なスクリプトになってしまい保守性が下がる可能性がある。 処理全体を関数化し、関数の戻りに対して、上記のメッセージング・ログ出力の処理を記述する方法 処理は全てmain関数で処理する。 # $* function main() { ls *.txt } { { main $* | tee -a output.log 3; } 2 1 | tee -a output.log 1 2;} 3 1 スクリプトでのメッセージング設計・実装に関して 以下に示す考え方は、必ずしも全ての状況・スクリプトについて「完全な正解」というものではなく、目的に応じて使い分けていくことが必要と思われる。 内部で呼び出してるコマンドの出力について 考え方(1) 標準出力も標準エラーも全てログ出力のみとする。 スクリプトの内部で呼び出している処理は全てリダイレクトして、ログ出力のみ行う。 コマンドを実行した旨および戻り値をメッセージングする。 echo "ls command started." ls -la stdout.log 2 1 RTN=$? echo "ls command end (exit by $RTN)." if [ ${RTN} -ne 0 ]; then echo "any error occured."; ... fiu; 場合によっては、戻り値に応じた、エラーハンドリングを行う。 考え方(2) 繰り返し処理される処理はループハンドリングして、途中経過を示すメッセージングを行う。 この方法では、コマンドの出力を直接ユーザーに示せないので、大量のファイルコピー(cp)・同期(rsync)など、時間がかかる処理の場合にはコマンドが実行されているのかどうか?分かりにくい、という側面で若干不親切である。 下記のように途中経過を示す出力を行う。 I=1 find ~ -type f 2 /dev/null | while read OUTPUT do let I=I+1; if [ `expr ${I} % 10` -eq 0 ]; then printf "Now in progress... (${I} of all)\r" fi; sleep 1; done; サンプルコードなので、処理自体には全く意味がないのと、処理件数も適切ではないが、上記のように繰り返し処理において、標準出力内容を一定件数ごとにハンドリングして、スクリプトが動いてることをユーザーに知らせる。 最終更新日 [2015-03-01]
https://w.atwiki.jp/pxy12770/pages/33.html
# .bashrc # User specific aliases and functions alias rm= rm -i alias cp= cp -i alias mv= mv -i export http_proxy=http //hogehoge.net 8080 # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi if [ "$SSH_CLIENT" ]; then export DISPLAY="${SSH_CLIENT%% *} 0.0" fi if [ "$LOGGING" != "yes" ]; then export LOGGING="yes" script -c "bash --norc" ~/log/`date +%Y-%m-%d %T`_${SSH_CLIENT%% *} exit fi bind "\C-n" history-search-forward bind "\C-p" history-search-backward
https://w.atwiki.jp/wiki11_pochi/pages/26.html
はじめに bashにはpushdとその反対のpopdコマンドが内蔵されている。 pushdは指定されたディレクトリに移動後、移動先のディレクトリをDIRSTACK配列環境変数の先頭の要素として追加する。 popdはDIRSTACKの先頭の要素に保存されているディレクトリに移動後、その要素を削除して2番目の要素以降を先頭に1つずつ詰める。 pushdとpopdは移動先のディレクトリから移動前のディレクトリに戻りたいときに使用すると便利だが、ディレクトリの移動には日常的に使用するcdコマンドを使ってしまうため、popdで戻ろうとしても後の祭りとなることが多い。 そこで、cdコマンドに履歴機能を持たせることで、pushdやpopdよりも使い勝手の良いものを作成する。 スクリプトの作成 ~/.bashrcに以下のサブルーチンを追加する。 # 環境設定 # LAST_DIRLIST:最終DIRLIST要素番号(処理の都合上、最大DIRLIST要素数ではない) # SAVE_DIRLIST:DIRLISTの保存先ファイル名 LAST_DIRLIST=19 SAVE_DIRLIST=$HOME/.dirlist # ディレクトリの移動 # 使用法:chdir [dir] # dir:移動先のディレクトリ # 指定されていない場合はホームディレクトリに移動 # 説明:カレントディレクトリをDIRLIST配列環境変数の先 # 頭の要素として追加し、指定されたディレクトリに # カレントディレクトリを移動する。 # DIRLISTには最大で(LAST_DIRLIST + 1)件の履歴を保存する。 function chdir { if [ ${#DIRLIST[@]} -gt $LAST_DIRLIST ]; then unset DIRLIST[$LAST_DIRLIST] fi DIRLIST=(`pwd` ${DIRLIST[@]}) cd $* } # 過去のディレクトリに移動 # 使用法:unchdir [num] # num:過去の履歴の番号(1=1つ前、2=2つ前、…) # 指定されていない場合は1つ前に移動 # 説明:指定された履歴番号(DIRLISTの添え字)の要素を # DIRLISTから削除し、カレントディレクトリを先頭 # の要素として追加して、削除した要素に保存され # ていたディレクトリにカレントディレクトリを移 # 動する。 function unchdir { if [ ${#DIRLIST[@]} -eq 0 ]; then echo "No changing directory" return 1 fi if [ $# -eq 0 ]; then i=0 else i=$1 if [ $i -le 0 ]; then i=1 elif [ $i -gt ${#DIRLIST[@]} ]; then i=${#DIRLIST[@]} fi i=`expr $i - 1` fi d=${DIRLIST[$i]} unset DIRLIST[$i] DIRLIST=(`pwd` ${DIRLIST[@]}) cd $d } # 過去のディレクトリに戻る # 使用法:backdir [num] # num:過去の履歴の番号(1=1つ前、2=2つ前、…) # 指定されていない場合は1つ前に戻る # 説明:先頭から指定された履歴番号(DIRLISTの添え字) # までの要素をDIRLISTから削除し、指定された要素 # に保存されていたディレクトリにカレントディレ # クトリを移動する。 function backdir { if [ ${#DIRLIST[@]} -eq 0 ]; then echo "No changing directory" return 1 fi if [ $# -eq 0 ]; then i=0 else i=$1 if [ $i -le 0 ]; then i=1 elif [ $i -gt ${#DIRLIST[@]} ]; then i=${#DIRLIST[@]} fi i=`expr $i - 1` fi d=${DIRLIST[$i]} DIRLIST=(`awk "BEGIN {for (i = $i + 2; i ARGC; i++) {print ARGV[i], "\n";}}" ${DIRLIST[@]}`) cd $d } # ディレクトリの移動履歴を表示 # 使用法:printdir # 説明:DIRLISTの全要素を履歴番号(DIRLISTの添え字) # 付きで表示する。 function printdir { echo ${DIRLIST[@]} | awk {for (i = 1; i = NF; i++) { printf "[%d] %s\n", i, $(i); }} } エイリアスの設定 ~/.bashrcに以下のエイリアスを追加する。 ただし、上記「スクリプトの作成」に記載したサブルーチンの後に追加しないと、例えば、chdirが実行するcdがchdirに置き換えられるため、無限にchdirを呼び出すことになり、その結果、スタックオーバーフローが発生する。 # 現在のcdコマンドの拡張など alias cd="chdir" alias ud="unchdir" alias bd="backdir" alias pd="printdir"
https://w.atwiki.jp/kashisu/pages/92.html
Cranium Basher 価格 3220 材料 Mithril Hammer(1610)+Gauntlets of Strength(150)+Recipi(1460) 所持効果 攻撃力+30 Strength+3(HP+57,0.09HP/秒回復) Bash(Range 10%/Melee 15%,25ダメージ,1.1秒) 10%/15%の確率で、25の追加ダメージを与え、1.1秒間、敵をStunさせる。 Range攻撃では、発生率は10%でダメージは物理属性で、StunはSpell属性。 Melee攻撃では、発生率は15%でダメージはSpell属性で、Stunは物理属性。 コメント 目指せバッシュマン
https://w.atwiki.jp/emeditor/pages/137.html
説明 箱形選択された領域に連番を挿入する 箱形選択して実行すると開始番号の入力を求められる そのときに、数字の前方に空白や0をいれると、先頭文字を使い文字列長にあわせて桁をあわせる 既知の問題 実行後、未選択状態になる 実行後、カーソル位置が元の選択領域の左上の位置にしてしまっている 「元に戻す」で一気に戻せない 折り返しを気にして、後ろから処理してしまっている 開始番号を負数にすると桁数あわせ処理が原因でおかしなことになる ソース(.jsee) if( document.selection.IsEmpty || (document.selection.Mode eeModeMask) != eeModeBox ){ alert( 箱形選択してください ); }else{ // 開始番号の入力を求める var ScriptControl = new ActiveXObject( ScriptControl ); ScriptControl.Language = VBScript ; ScriptControl.AddCode( Function Input(x,y,z)\nInput=InputBox(x,y,z)\nEnd Function ); var str = ScriptControl.Run( Input , 開始番号を入力してください , 連番挿入マクロ , 1 ); if( !str ) Quit(); var no = Number( str ); while( isNaN(no) ){ str = ScriptControl.Run( Input , 開始"番号"を入力してください , 連番挿入マクロ , str); if( !str ) Quit(); no = Number( str ); } // 桁あわせのための情報を得る var digit = str.length; var fill = str.substring(0,1); if( fill.length = 0 ) fill = ; // 選択領域の情報を得る var tx = document.selection.GetTopPointX( eePosView ); var ty = document.selection.GetTopPointY( eePosView ); var bx = document.selection.GetBottomPointX( eePosView ); var by = document.selection.GetBottomPointY( eePosView ); var lx = (tx bx) ? tx bx, rx = (tx bx) ? tx bx, y, n = by - ty + no; // 挿入 for( y = by ; y = ty ; --y, --n ){ var s = + n; while( s.length digit ) s = fill + s; document.selection.SetActivePoint( eePosView, lx, y, false ); document.selection.SetActivePoint( eePosView, rx, y, true ); document.selection.Text = s; } // カーソルを、とりあえず元の選択領域の左上の位置にする document.selection.SetActivePoint( eePosView, lx, ty, false ); }
https://w.atwiki.jp/matsutips/pages/8.html
シェルプログラムのTips&サンプルプログラム 拡張子の一括変更 bashでログインしても.bashrcが反映されない シェル中で数値を扱いたい 整数・小数演算 日付の自動表示 複数文字列のor指定 第n行を表示する 連番を表示(seq) 拡張子の一括変更 #!/bin/sh while [ -n $1 ]; do #第一引数$1がゼロでない(-n)なら実行 ${1/pnm/png} #pnmをpngで置換する shift #引数をずらす done #終了 for old in *.pnm; do new=`echo $old | sed "s/pnm/png/g"`; mv $old $new; done bashでログインしても.bashrcが反映されない .bash_profileで設定する必要がある。(詳細はbashのマニュアル) 具体的には、.bash_profile内に . ~/.bashrc を(もしくは同様の記述、source .bashrcなどを)書く。 シェル中で数値を扱いたい 普通に宣言するだけではシェルスクリプトは全て文字として判断する。例えば、 $ a=1 $ b=$a+1 $ echo $b 1+1 みたいになる。これを解決するためには、declare -iで宣言してやる必要がある。参照ページ $ declare -i a=1 b=0 $ b=$a+1 $ echo $b 2 整数・小数演算 もっとも有名なのは expr で、これは引数に演算式を与えると演算してくれる。 $ expr 1 + 1 2 ただし、expr は、演算子の前後にスペースを入れないとエラーになる(スペース区切りで構文解析をしているため)。 $ expr 1+1 1+1 使える演算は、四則演算+剰余と、その他文字列とか論理和・積など。参照ページ 小数演算をしたい場合は bc を使う。ただし、こっちは引数ではとってくれないため、 echo を使って流し込む必要がある。 $ echo "1.1 + 2.2" | bc -l 3.3 日付の自動表示 これは結構色んなとこでも書いているが、実際使ったから記述。 シェルスクリプト内で日付を入れたものを作りたいときはdateコマンドを利用する。 例えば、 mkdir `date +%Y%m%d` とかすると今日の年月日のフォルダを作ることができる。 よく使う実験用シェルスクリプトとかに入れておくと勝手に日付管理してくれて便利。 複数文字列のor指定 結構記述がなかったのでメモ。 例えば、 file_a.txt file_b.txt の両方を指定したい場合は ls file_[ab].txt みたいに書く。では、file_one.txt file_two.txtの両方を指定する場合はどうするか。 ls file_{one,two}.txt みたいに{}を使って書く。 ただし、[]は好意的に(あれば含めるし、なければ無視)とってくれるが、{}は両方必ず指定される。つまり、上の例では file_b.txt がなくてもエラーはでないが、 file_two.txt がないと ls file_two.txt そのようなファイルやディレクトリはありません と怒られる。 第n行を表示する ファイルの第N行目だけ、もしくはM-N行目を表示したいってとき、ありますよね? sed -ne Np hoge で、N行目だけ出る。-nはpで出力しなければ出力しないという引数で、sedはN行目だけマッチしてpで出力する。他の行は無視される。 同様に、 sed -ne M,Np hoge でM-N行目が出力される。 連番を表示(seq) seq M N でMからNまでが連番で出力される。 1-10みたいなときに桁数を揃えたい場合は seq -w 1 10 にすると 01 02 03 04 05 06 07 08 09 10 となる。 また、 seq -f %03g 1 5 みたいにすると 001 002 003 004 005 みたいに形式を揃えることができる。デフォルトは %g を使用。基本はprintfと同じ。
https://w.atwiki.jp/kobapan/pages/199.html
Android の SDカードがいきなり読み取り不良になった TestDisk - CGSecurityを使って復帰したものの、なんかまだ動作がおかしい Android では mount できるのに、Debian だと勝手に mount 解除されてしまう 動いているうちに、Android へ adb で繋いで PC にフルバックアップしておこう と思ったら、そんなことに特化したアプリやスクリプトが見つからない のでシェルスクリプトを作る Android から PC へファイルをコピーする adb コマンド adb pull /sdcard/FILE ./FILE これで FILE にはファイル名でもディレクトリ名でもよい これを shell でループさせる #!/bin/bash # sdcard backup script for Android # via adb ( Android SDK ) # # 1. # 事前に adb server を起動しておくこと # $ sudo adb start-server # # 2. # 実行するとカレントディレクトリにsdcardの中身をぶちまけるので、 # 事前にバックアップ用のディレクトリを作ってその中に入ること for LINE in `adb shell ls -a --color=never /sdcard` do FILE=($(echo -n $LINE|tr "\r" "\n")) if test "$FILE" != "." test "$FILE" != ".." ; then adb pull /sdcard/${FILE} ./${FILE} fi done Android SDK の構築の仕方 http //www20.atwiki.jp/kobapan/pages/194.html