約 1,585,568 件
https://w.atwiki.jp/cscd/pages/220.html
NQSで何番から何番までのjobを削除するというスクリプトを書くときに、job番号が7桁とかあるんだけど、それをそのままforに入れたら動いてくれなかった。以下のように差をとって回避した。 #!/bin/bash declare -i startdeclare -i stop echo "From ? (Enter the Integer)"read start echo "To ? (Enter the Integer)"read stop declare -i nn=$stop-$start declare -i ideclare -i j for i in $(seq 0 $n) do j=$start+$i qdel -k $jdone forが以下の様な感じで、start,stopが大きいと動かない。 for i in $(seq $start $stop) do qdel -k $idone 参考リンク ALL about Linux bash で扱える整数の上限
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/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/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/bastian/pages/22.html
i would be able to hunt more easily by combining general attack with powerful finishing skills.Let's use two Chain Attacks and a Bash! task Bash skill 0/5 Compensation Level 2 mainquestに戻る
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/ohden/pages/1092.html
diff-highlight for Git-bash git version 2.37.3.windows.1 客先でWSLが使えないので、なんとかGit-bashを使えるように努力中。 diff-highlight使いたかったので、その有効化手順をまとめる。 install 探してみる。 $ where diff-highlight INFO Could not find files for the given pattern(s). 無いので、まずは取得して有効化するトコから。 githubを確認すると、 commit 0c977dbc8180892af42d7ab9235fd3e51d6c4078 Date 2017-06-16 01 30 で、分離されてる。 以降変更無いっぽいので、分離前の v2.13.2 を取ってきて利用する。 git-2.13.2.zip/git-2.13.2/contrib/diff-highlight/diff-highlight 取ってきたdiff-highlightを以下の場所に配置。 C \Program Files\Git\usr\bin コレでdiff-highlightにpathが通る。 where diff-highlight C \Program Files\Git\usr\bin\diff-highlight ※git-bashのroot dirは、"C \Program Files\Git"で、filteringして表示しとるっぽい。 diff-highlight自体はperl scriptで、git-bashではperlも有効。なのでこのまま使える。 where perl C \Program Files\Git\usr\bin\perl.exe 有効化 git-bashからgitconfigのglobal設定。 $ git config --global pager.log 'diff-highlight | less' $ git config --global pager.show 'diff-highlight | less' $ git config --global pager.diff 'diff-highlight | less' または、直接いじってもok。 $ vi ~/.gitconfig [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less とりあえず、ココまでやればdiffなどで差分がhighlightされて表示される。 更新日: 2024年01月31日 (水) 13時51分26秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/oblivionfaq/pages/35.html
Q:Wrye Bashって何? A:ModとSavefileを管理するツールです。詳しくはこちら
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/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