概要 †
目次 †デバッグ †
bashとshの違い †
文法 †if †if [ $? -eq 1 ] # []の回りにスペース必須 then continue fi for †
終了ステータス †
配列 †list=("1332" "1333" "1605") # =の間にスペースを入れると死ぬ include †. list #listは実行可能である必要は無い find †find . find . -type f find . -type ! -name "*~" find . -type f -a \( -name "*.c" -o -name "*.h" \)
xargs †ls -1 | xargs echo find . -print0 | xargs -0 echo find . -print0 | xargs -0 -L1 echo find . -print0 | xargs -0 -L2 echo find . -print0 | xargs -0 -I{} echo "<{}>"
ls | sed -e "p;s/\.jpeg$/\.jpg/" | xargs -n2 mv for i in *.jpeg ; do mv $i `basename $i .jpeg`.jpg ; done
sed †
sed -e 's/#//'
sed -n 's/#//'
sed -n 's/#//p'
echo 'a a' | sed -e 's/ *//'
sed -e '1s/rep/p/'
awk †
echo "replot" | awk '{sub(/^rep/, "p", $0); print $0}' make †Makefileの\( のエスケープは \)$ backquote †echo hamu echo `echo hamu` echo `echo \`echo hamu\`` echo `echo \`echo \\\`echo hamu \\\`\`` for文 †for var in `echo "a b"` do echo ${var} done for var in `echo "a b"` ; do echo ${var} ; done
セパレータ †#!/bin/bash IFS=$'\n' for i in `cat file` do IFS=$' \t\n'で echo $i done $'' †中の\t, \b, \nなどを展開する。 echo "a\na" \n echo $'a\na' a a while †while read i;do echo $i;done < file
文字列の比較 †${var} = "A" ${var} != "A"
何もしない †: if †
if command ; then echo a ; fi
test †
if [ condition ] then expression fi if [ -e hoge ] ; then echo a ; fi
grep, egrep †
echo $' \t' | grep $'^[ \t]+$' ; echo $? 1 echo $' \t' | egrep $'^[ \t]+$' ; echo $? 0
echo $' \t' | grep -E $'^[ \t]+$' ; echo $? 1 $?とパイプ †echo "hoge" | grep "test" | echo $?
Gnuplot †式 †plot "file" u 1 plot "file" u ($1)
for †
1 2 3 2 3 2 3 5 2 5 8 1 plot for [i=1:3] "a" u i sprintf †plot for [i=1:3] sprintf("hoge%02d", i) t sprintf("hoge%02d", i)
system †
3 num = system("cat num.config") plot for [i=1:num] sprintf("hoge%02d", i) t sprintf("hoge%02d", i) 数字と文字列の連結 †n = system("awk '{print NF; exit}' motenc_state") replot for [i=2:n] "dv_motor" u i title "Motenc State".(i-1)." [unknown]" awk †1行目のフィールド数の取得 †awk '{print NF; exit}' file complete †complete †complete -o dirnames -f -X '!*.mp3' mp3nantoka.sh
comgen †
定石 †function _hoge { local arg opts COMPREPLY=() arg="${COMP_WORDS[COMP_CWORD]}" opts="`ls -1`" IFS=$'\n' COMPREPLY=($(compgen -W "${opts}" -- ${arg})) unset IFS } complete -F "_hoge" "hoge" Directoryのパスの場合 †complete -F "_plotter" -o "nospace" "plotter"
Dropbox †~/.dropbox-dist/dropboxd 自動起動 †Startup Aplicationからクリックで頑張る wget †
cron †
mail †echo "test" | mail wakataberyo@gmail.com sendmail †
md5sum †
iconv, nkf †
|