| Line | |
|---|
| 1 | #! /bin/bash
|
|---|
| 2 | #
|
|---|
| 3 | # aliasconv.bash - convert csh aliases to bash aliases and functions
|
|---|
| 4 | #
|
|---|
| 5 | # usage: aliasconv.bash
|
|---|
| 6 | #
|
|---|
| 7 | # Chet Ramey
|
|---|
| 8 | # [email protected]
|
|---|
| 9 | #
|
|---|
| 10 | trap 'rm -f /tmp/cb$$.?' 0 1 2 3 6 15
|
|---|
| 11 |
|
|---|
| 12 | T=$'\t'
|
|---|
| 13 |
|
|---|
| 14 | cat << \EOF >/tmp/cb$$.1
|
|---|
| 15 | mkalias ()
|
|---|
| 16 | {
|
|---|
| 17 | case $2 in
|
|---|
| 18 | '') echo alias ${1}="''" ;;
|
|---|
| 19 | *[#\!]*)
|
|---|
| 20 | comm=$(echo $2 | sed 's/\!\*/"$\@"/g
|
|---|
| 21 | s/\!:\([1-9]\)/"$\1"/g
|
|---|
| 22 | s/#/\#/g')
|
|---|
| 23 | echo $1 \(\) "{" command "$comm" "; }"
|
|---|
| 24 | ;;
|
|---|
| 25 | *) echo alias ${1}=\'$(echo "${2}" | sed "s:':'\\\\'':g")\' ;;
|
|---|
| 26 | esac
|
|---|
| 27 | }
|
|---|
| 28 | EOF
|
|---|
| 29 |
|
|---|
| 30 | # the first thing we want to do is to protect single quotes in the alias,
|
|---|
| 31 | # since they whole thing is going to be surrounded by single quotes when
|
|---|
| 32 | # passed to mkalias
|
|---|
| 33 |
|
|---|
| 34 | sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>/tmp/cb$$.1
|
|---|
| 35 |
|
|---|
| 36 | $BASH /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \
|
|---|
| 37 | -e 's/\$term/\$TERM/g' \
|
|---|
| 38 | -e 's/\$home/\$HOME/g' \
|
|---|
| 39 | -e 's/\$user/\$USER/g' \
|
|---|
| 40 | -e 's/\$prompt/\$PS1/g'
|
|---|
| 41 |
|
|---|
| 42 | exit 0
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.