Bash (简体中文)/Functions (简体中文)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
从笔记 (note taker) 得到启发,一个小的 todo 脚本
todo() { test -f $HOME/.todo || touch $HOME/.todo if test $# = 0 then cat $HOME/.todo elif test $1 = -l then cat -n $HOME/.todo elif test $1 = -c then > $HOME/.todo elif test $1 = -r then cat -n $HOME/.todo echo -ne "----------------------------\nType a number to remove: " read NUMBER sed -ie ${NUMBER}d $HOME/.todo else echo $@ >> $HOME/.todo fi }
一个小的笔记(note taker)
note () { #if file doesn't exist, create it [ -f $HOME/.notes ] || touch $HOME/.notes #no arguments, print file if [ $# = 0 ] then cat $HOME/.notes #clear file elif [ $1 = -c ] then > $HOME/.notes #add all arguments to file else echo "$@" >> $HOME/.notes fi }
解压缩函数,另外你也可以使用 atool (在 [community] 仓库中)
extract() { local e=0 i c for i; do if [ -f $i && -r $i ]; then c= case $i in *.tar.bz2) c='tar xjf' ;; *.tar.gz) c='tar xzf' ;; *.bz2) c='bunzip2' ;; *.gz) c='gunzip' ;; *.tar) c='tar xf' ;; *.tbz2) c='tar xjf' ;; *.tgz) c='tar xzf' ;; *.7z) c='7z x' ;; *.Z) c='uncompress' ;; *.exe) c='cabextract' ;; *.rar) c='unrar x' ;; *.xz) c='unxz' ;; *.zip) c='unzip' ;; *) echo "$0: cannot extract \`$i': Unrecognized file extension" >&2; e=1 ;; esac [ $c ] && command $c "$i" else echo "$0: cannot extract \`$i': File is unreadable" >&2; e=2 fi done return $e }
docview () { if [ -f $1 ] ; then case $1 in *.pdf) xpdf $1 ;; *.ps) oowriter $1 ;; *.odt) oowriter $1 ;; *.txt) leafpad $1 ;; *.doc) oowriter $1 ;; *) echo "don't know how to extract '$1'..." ;; esac else echo "'$1' is not a valid file!" fi }
计算器
calc() { echo "scale=3;$@" | bc -l ; }
Kingbash - 菜单驱动的自动完成 (参见 https://bbs.archlinux.org/viewtopic.php?id=101010)
从AUR安装kingbashAUR[损坏的链接:package not found] 然后插入下面的代码到 .bashrc
function kingbash.fn() { echo -n "KingBash> $READLINE_LINE" #Where "KingBash> " looks best if it resembles your PS1, at least in length. OUTPUT=`/usr/bin/kingbash "$(compgen -ab -A function)"` READLINE_POINT=`echo "$OUTPUT" | tail -n 1` READLINE_LINE=`echo "$OUTPUT" | head -n -1` echo -ne "\r\e[2K"; } bind -x '"\t":kingbash.fn'