この記事は約24分5秒で読むことができます。

bash 小ネタ

参考文献

シェルスクリプトノウハウ

シェルスクリプトノウハウ  

ファイルディスクリプタの説明。分かりやすい。

1>/dev/null 2>&1と2>&1 1>/dev/nullの違い  

引数処理に関する説明。分かりやすい。

引数を処理する  

算術演算子に関する説明。

Bash $((算術式)) のすべて  
Bash $((算術式)) のすべて - A 基本編  
Bash $((算術式)) のすべて - B 罠・バグ回避編  
Bash $((算術式)) のすべて - C 応用編  

ifに関する説明。

if 文と test コマンド  

USPの会

シェルスクリプトでの標準入力の読み方  

ifとパイプ|

標準入力を受け取れるシェルスクリプト、関数の作成(パイプで繋げられるようにする)  

この思想を感じ取る

プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話  

xargsの使い方

xargsで複数コマンドを実行する  

xargsの使い方。サンプルいっぱい。

xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個)  

たぶんはまる

ShellScriptのダブルクォートとシングルクォートの違い  

正規表現マッチのif

bash で正規表現マッチのif も出来ます。  

これすごい。manually_complete_version.sh

bash によるオプション解析  

配列なんだな。大事なのは。

Bashで覚えておくとよいデータ構造 - 配列  

Tips集 ifと&&と||

bashのあまり知られていないけど便利な話  

すごいなー

Bashでちょっと凝ったオプションの解析をする  

回避策のやつがいい

シェルスクリプトのreturn  

callback的なやつ

ファイルの各行にコールバック関数を適用する汎用関数  

解決編がいい

パイプ出力を現在のシェル上のwhileに喰わせる上手いやり方  

プログレスバーてきなやつ

ShellScriptで使えるメソッドまとめ  

やっぱりあった

mysqldumpリカバリの進捗を表示する  

おしゃん

Linux - pv コマンドで処理進捗状況表示!  

自作力がすごい

仕事がダラけてしまったのでシェルスクリプトでプログレスバーやってみた  

自作力がすごい

さらに仕事がダラけてしまったのでpvコマンドでプログレスバー  

デバッグ

bashデバッグTips  

ステップデバッグ

Shellスクリプトをデバッグ(ステップ実行)する  

自作力がすごい

Bashの擬似シグナルを使ったデバッグ方法  

;とか&とか&&とか|とか||

Linuxコマンドを連続して使うには  

バッググラウンドジョブとかそこらへんの

バックグラウンドプロセス(ジョブ)の管理  

初心者に戻りました

初心者向け、「上手い」シェルスクリプトの書き方メモ  

シグナル

Linuxのシグナルまとめ  

curlいい

シェルスクリプトって意外と便利  

curlといば、あの記事がうかんだ。すごいなー。

SQLQL  

ハンディだ。すごいなー。こういうのほしかった。見つけられて良かった。

ShellScriptで使えるメソッドまとめ  

[パイプ + α] xargs commandA | xargs -I@ commandB @

コマンドとコマンドをつなぐ糊  

プロセス系のやつ

bashでのPID取得方法まとめ($$、$PPID、$!、$BASHPID)  

後で役立つだろう

bashスクリプトで子プロセスを全部殺すイディオム  

後で役立つだろう

シェルスクリプトでサブシェルのプロセスIDを取る方法  

後で役立つだろう

シェルスクリプトで trap を忘れちゃいませんか  

xargsだな

xargs のオプションいろいろ  

psでうろうろしてたらみつけた

TTY/PTYに関するクイズ  

クワシイイイ

標準入力・標準出力ってなに?  

すごいいい

Linuxを触りたての頃に知っておきたかったよ〜ってことのまとめ  

監視系

俺のオススメする監視ツール5選!!  

特殊パラメータ

パラメータ展開

ヒアドキュメント

コマンド置換

配列の間接展開

サンプル

スクリプト

コード表示

#!/bin/bash

arg(){
    while [ $# -gt 0 ]
    do
        echo "\$0=$0"
        echo "\$#=$#"
        echo "\$@=$@"
        echo "\$*=$*"
        echo "\$1=$1"
        shift
    done
}

arg $(seq -s ' ' 1 3)

実行例

コード表示

[oracle@f285aba0589a sh]$ ./smp.sh
$0=./smp.sh
$#=3
$@=1 2 3
$*=1 2 3
$1=1
$0=./smp.sh
$#=2
$@=2 3
$*=2 3
$1=2
$0=./smp.sh
$#=1
$@=3
$*=3
$1=3

小ネタ

ブレース展開べんりすぎる

コード表示

[oracle@centos ~]$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[oracle@centos ~]$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
[oracle@centos ~]$ echo {a..z},{A..Z}
a,A a,B a,C a,D a,E a,F a,G a,H a,I a,J a,K a,L a,M a,N a,O a,P a,Q a,R a,S a,T a,U a,V a,W a,X a,Y a,Z b,A b,B b,C b,D b,E b,F b,G b,H b,I b,J b,K b,L b,M b,N b,O b,P b,Q b,R b,S b,T b,U b,V b,W b,X b,Y b,Z c,A c,B c,C c,D c,E c,F c,G c,H c,I c,J c,K c,L c,M c,N c,O c,P c,Q c,R c,S c,T c,U c,V c,W c,X c,Y c,Z d,A d,B d,C d,D d,E d,F d,G d,H d,I d,J d,K d,L d,M d,N d,O d,P d,Q d,R d,S d,T d,U d,V d,W d,X d,Y d,Z e,A e,B e,C e,D e,E e,F e,G e,H e,I e,J e,K e,L e,M e,N e,O e,P e,Q e,R e,S e,T e,U e,V e,W e,X e,Y e,Z f,A f,B f,C f,D f,E f,F f,G f,H f,I f,J f,K f,L f,M f,N f,O f,P f,Q f,R f,S f,T f,U f,V f,W f,X f,Y f,Z g,A g,B g,C g,D g,E g,F g,G g,H g,I g,J g,K g,L g,M g,N g,O g,P g,Q g,R g,S g,T g,U g,V g,W g,X g,Y g,Z h,A h,B h,C h,D h,E h,F h,G h,H h,I h,J h,K h,L h,M h,N h,O h,P h,Q h,R h,S h,T h,U h,V h,W h,X h,Y h,Z i,A i,B i,C i,D i,E i,F i,G i,H i,I i,J i,K i,L i,M i,N i,O i,P i,Q i,R i,S i,T i,U i,V i,W i,X i,Y i,Z j,A j,B j,C j,D j,E j,F j,G j,H j,I j,J j,K j,L j,M j,N j,O j,P j,Q j,R j,S j,T j,U j,V j,W j,X j,Y j,Z k,A k,B k,C k,D k,E k,F k,G k,H k,I k,J k,K k,L k,M k,N k,O k,P k,Q k,R k,S k,T k,U k,V k,W k,X k,Y k,Z l,A l,B l,C l,D l,E l,F l,G l,H l,I l,J l,K l,L l,M l,N l,O l,P l,Q l,R l,S l,T l,U l,V l,W l,X l,Y l,Z m,A m,B m,C m,D m,E m,F m,G m,H m,I m,J m,K m,L m,M m,N m,O m,P m,Q m,R m,S m,T m,U m,V m,W m,X m,Y m,Z n,A n,B n,C n,D n,E n,F n,G n,H n,I n,J n,K n,L n,M n,N n,O n,P n,Q n,R n,S n,T n,U n,V n,W n,X n,Y n,Z o,A o,B o,C o,D o,E o,F o,G o,H o,I o,J o,K o,L o,M o,N o,O o,P o,Q o,R o,S o,T o,U o,V o,W o,X o,Y o,Z p,A p,B p,C p,D p,E p,F p,G p,H p,I p,J p,K p,L p,M p,N p,O p,P p,Q p,R p,S p,T p,U p,V p,W p,X p,Y p,Z q,A q,B q,C q,D q,E q,F q,G q,H q,I q,J q,K q,L q,M q,N q,O q,P q,Q q,R q,S q,T q,U q,V q,W q,X q,Y q,Z r,A r,B r,C r,D r,E r,F r,G r,H r,I r,J r,K r,L r,M r,N r,O r,P r,Q r,R r,S r,T r,U r,V r,W r,X r,Y r,Z s,A s,B s,C s,D s,E s,F s,G s,H s,I s,J s,K s,L s,M s,N s,O s,P s,Q s,R s,S s,T s,U s,V s,W s,X s,Y s,Z t,A t,B t,C t,D t,E t,F t,G t,H t,I t,J t,K t,L t,M t,N t,O t,P t,Q t,R t,S t,T t,U t,V t,W t,X t,Y t,Z u,A u,B u,C u,D u,E u,F u,G u,H u,I u,J u,K u,L u,M u,N u,O u,P u,Q u,R u,S u,T u,U u,V u,W u,X u,Y u,Z v,A v,B v,C v,D v,E v,F v,G v,H v,I v,J v,K v,L v,M v,N v,O v,P v,Q v,R v,S v,T v,U v,V v,W v,X v,Y v,Z w,A w,B w,C w,D w,E w,F w,G w,H w,I w,J w,K w,L w,M w,N w,O w,P w,Q w,R w,S w,T w,U w,V w,W w,X w,Y w,Z x,A x,B x,C x,D x,E x,F x,G x,H x,I x,J x,K x,L x,M x,N x,O x,P x,Q x,R x,S x,T x,U x,V x,W x,X x,Y x,Z y,A y,B y,C y,D y,E y,F y,G y,H y,I y,J y,K y,L y,M y,N y,O y,P y,Q y,R y,S y,T y,U y,V y,W y,X y,Y y,Z z,A z,B z,C z,D z,E z,F z,G z,H z,I z,J z,K z,L z,M z,N z,O z,P z,Q z,R z,S z,T z,U z,V z,W z,X z,Y z,Z
[oracle@centos ~]$ echo {{a..z},{A..Z}}
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Leave a Reply

Your email address will not be published. Required fields are marked *