Bash (简体中文)/Functions (简体中文)
Jump to navigation
Jump to search
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'