summaryrefslogtreecommitdiffstats
path: root/examples/functions/csh-compat
blob: 6671ca85005f7a956e7745507d53f540dbbf09d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# C-shell compatibility package.
# setenv VAR VALUE
function setenv ()
{
  export $1="$2"
}

function unsetenv ()
{
  unset $1
}

# Can't write foreach yet.  Need pattern matching, and a few extras.
function foreach () {
echo 'Can'\''t do `foreach'\'' yet.  Type "help for".'
}

# Make this work like csh's.  Special case "term" and "path".
#set () {
#}

chdir ()
{
  builtin cd "$@"
}

# alias - convert csh alias commands to bash functions
# from Mohit Aron <aron@cs.rice.edu>
# posted to usenet as <4i5p17$bnu@larry.rice.edu>
function alias ()
{
	if [ "x$2" = "x" ] 
	then
		declare -f $1
	else
		case $2 in
		*[#\!]*)
			comm=$(echo $2 | sed  's/\\!\*/\"$\@\"/g
					       s/\\!:\([1-9]\)/\"$\1\"/g
				               s/#/\\#/g')
			;;
		*)
			comm="$2 \"\$@\"" ;;
		esac

		eval function $1 \(\) "{" command "$comm"  "; }"
	fi
}