From: Dan S. <dj2...@st...> - 2002-01-26 23:32:04
|
Hey, I was just trying the new shell code and found a bug. I was trying to run the fibo program. If i do /boot/bin/fibo it prints the usage message out like its suppost to, but if i do /boot/bin/fibo 5 it says can find '5'. So i took a look at some of the argv items. In the first case I've got argv[0] = exec, argv[1] = /boot/bin/fibo in the second case argv[0] = exec, argv[1] = 5 So it seems to be clobering the name of the program with the argument. dan On Friday 25 January 2002 14:57, you wrote: > Hi, > > The attachment contains the source of the shell to wich I added > the following features: > > Variables > ========== > > Variables must start with "$" after wich a character > and than characters, numbers or "_" can follow. > > e.g. > > valid variables are: > > $A9 > $A_B_C > $a_B_c > > Invalid are > > $9A > $8888 > $_A (sorry I do fix this in the next version) > > When a new shell is started from the shell, it doesn't inherit > the variables. > > expressions > ============ > > In the current version the following expressions are possible: > > *<Variable> > *numbers > *string (single or double qouted) > > > strings > ======= > > A String can be single or double qouted. > In double qouted strings varibales are replaced by their values: > e.q. > "path=$path" becomes "path=/boot/bin:/boot" > 'path=$path' "path=$path" > > > Load operator > ============= > Variabels can be set as folows: > > <variable>=<expression> > > e.q. > > $shell="/boot/bin/shell" > > When using a variable to call a program it is necessary to > use the 'exec' command: > > e.g. > > exec $shell > > > echo > ===== > > The echo syntax is > > echo [expression {,expression}] > > e.g. > > echo "path=",$path > > echo doesn't support the '>' operator yet. > > path variable > ============= > > There is one predefined variable: path. > The execute statement uses this variables for the search path. > The directories are seperated by a ':'. > E.g. > path="$path:/boot/bin" > > > > Substitute > ========== > > The older commands like mount,ls,mkdir etc.. also supports > variables. The command line is first parsed and then > the variables are substituted by their values. > > e.g. > > $me="\boot" > > ls $me > > mkdir $me > > Single and double qouted strings are handled as mentioned before. > > ==================== > > Next i whould like to add: > ========================== > *if > *labels > *goto > *Reading script from file > *Formula's > *A swimming pool. > > Greez Jer. ------------------------------------------------------- |