In Unix, how would one do this?
#!/bin/sh
x=echo "Hello" | grep '^[A-Z]'
I want x to take the value "Hello", but this script does not seem to work. What would be the proper way of spelling something like the above out?
In Unix, how would one do this?
#!/bin/sh
x=echo "Hello" | grep '^[A-Z]'
I want x to take the value "Hello", but this script does not seem to work. What would be the proper way of spelling something like the above out?
You can use command substitution as:
x=$(echo "Hello" | grep '^[A-Z]')
You could also use the outdated back-quote style as:
x=`echo "Hello" | grep '^[A-Z]'`
you can also use shell internals without calling external tools, eg case/esac
str="Hello"
case "$str" in
[A-Z]* ) x=$str;;
esac
be sure that you are using expected regex supporting grep, grep has many variants across unixs.