bash how to input * from a file -
the problem: have simple compiler compiles simple rpn expression. compiler invoked this:
./compiler 1 2 3 + "*"
this works fine.
now, let's i've put
1 2 3 + "*"
into file called input. when invoke compiler this:
./compiler $(cat input)
my compiler complain: unknown symbol: "*"
if remove double quote around *, * gets expanded file names. i've tried '' , ``, no good.
so, how can input normal * file?
zoo.sh content
#!/bin/bash set -f echo $@
m.txt content:
1 2 3 + *
in shell do:
set -f ./zoo.sh 1 2 4 + * 1 2 4 + * ./zoo.sh $(cat m.txt) 1 2 3 + *
the shell doing expansion you. happens before command runs. if want stop need explicitly tell it. read here: http://www.gnu.org/software/bash/manual/bash.html#the-set-builtin
above script sets prevent echo inside script expansion , make work imagine code works. compiler not (need) this.
remember set +f
restore filename expansion.
Comments
Post a Comment