Can I use ECHO to execute commands?
echo, linux, printing, scripting, shell
Solution
Just put your command into parenthesis like this:
echo $(ls)
You can also have text before the command
echo "The date is $(date)"
For Example
echo "Enter Text Here $(Command Here)"
Problem
I've come up with a cool script that will produce the output that I need, but it only displays on the screen, so I have to copy, then paste in the commands to get them to execute. Here's the abbreviated version of my script: ``` #!/bin/bash runc=/etc/csf/csf.pl -d for IP in `tail -400 iptext.txt` do cc=`geoiplookup $IP` echo -e $runc $IP $cc | grep Algeria echo -e $runc $IP $cc | grep Argentina echo -e $runc $IP $cc | grep Armenia echo -e $runc $IP $cc | grep Azerbaijan echo -e $runc $IP $cc | grep Bolivia echo -e $runc $IP $cc | grep Brazil done ``` Okay, so it loops through the list of IP addresses in iptext.txt, then does a geoIP lookup on each, if (in this example) there are two geoIP matches in the list, let's say for Armenia and Brazil, I will see output like this to the shell window: ``` /etc/csf/csf.pl -d 46.162.242.17 GeoIP Country Edition: AM, Armenia /etc/csf/csf.pl -d 200.147.38.50 GeoIP Country Edition: BR, Brazil ``` This is great, but I want more than just output, I actually want the `/etc/csf/csf.pl -d` command to run, and block (just and only) the IP in the lines that match the country name, in the list. I've tried various things with my limited knowledge of shell scripting, but so far, nothing seems to work. So is there some option for ECHO I am missing that would actually run the command rather than just printing out the line?