File: setsh

package info (click to toggle)
tiger 2.2.4-22
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,188 kB
  • ctags: 240
  • sloc: sh: 8,388; ansic: 2,109; makefile: 141; perl: 106
file content (66 lines) | stat: -rwxr-xr-x 1,011 bytes parent folder | download
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh
#
# Convert everything over to another shell.
#
# This of course only useful for converting to Bourne Shell-line
# shells such as Korn Shell or Bourne Again SHell.  Can also
# be used to add options to the scripts.
#
# Usage: setsh path_to_shell shell_arguments
#

shell=$1
shellx="$*"

[ ! -n "$shell" ] && {
  echo "--ERROR-- Usage: $0 shellname"
  exit 1
}

[ ! -x $shell ] && {
  echo "--ERROR-- $shell does not exist or not executable"
  exit 1
}

case $shell in
  *csh)
     echo "--ERROR-- C-shell style shells are not acceptable"
     exit 1
     ;;
  *zsh)
     echo "--ERROR-- zsh is not acceptable"
     exit 1
     ;;
esac
   
findcmd()
{
  CMD=$1

  SRCH=/usr/ucb:/usr/bin:/bin:/etc:/usr/etc
  
  SAVEIFS=$IFS
  IFS=:
  set $SRCH
  IFS=$SAVEIFS
  for dir
  do
    [ -x $dir/$CMD ] && {
      echo $dir/$CMD
      return
    }
  done
}

FIND=`findcmd find`
ED=`findcmd ed`

$FIND . ! -type d -print |
while read filename
do
  $ED -s $filename <<EDCMD
1,1s%#!.*\$%#!$shellx%
w
q
EDCMD
done