What is the current version of the script? -- Russell
On Wed, Jul 23, 2025, 11:18 Michael Barnes <barnmich...@gmail.com> wrote: > On Wed, Jul 23, 2025, 10:50 Ali Corbin <ali.cor...@gmail.com> wrote: > > > Does the script source your env? > > > > On Wed, Jul 23, 2025 at 10:47 AM Michael Barnes <barnmich...@gmail.com> > > wrote: > > > > > On Fri, Jul 18, 2025, 09:56 Michael Barnes <barnmich...@gmail.com> > > wrote: > > > > > > > > > > > > > > > On Wed, Jul 16, 2025 at 11:59 PM Ben Koenig < > techkoe...@protonmail.com > > > > > > > wrote: > > > > > > > >> > > > >> > > > >> > > > >> > > > >> -Ben > > > >> > > > >> > > > >> On Wednesday, July 16th, 2025 at 11:05 PM, Ben Koenig < > > > >> techkoe...@protonmail.com> wrote: > > > >> > > > >> > On Wednesday, July 16th, 2025 at 9:57 PM, Michael Barnes > > > >> barnmich...@gmail.com wrote: > > > >> > > > > >> > > I have a script that is supposed to grab a weather feed and > return > > > the > > > >> > > current temperature. If grabs the file fine, but does not return > > the > > > >> > > temperature. > > > >> > > > > > >> > > Here is the line that fails: > > > >> > > > > > >> > > T=$(grep "<temp_f>" KEUG.xml |cut -c10- |cut -d '.' -f 1) > > > >> > > > > > >> > > Here is the KEUG.xml file: > > > >> > > <?xml version="1.0" encoding="ISO-8859-1"?> > > > >> > > > > > >> > > <?xml-stylesheet href="latest_ob.xsl" type="text/xsl"?> > > > >> > > > > > >> > > <current_observation version="1.0" xmlns:xsd=" > > > >> > > http://www.w3.org/2001/XMLSchema" xmlns:xsi=" > > > >> > > http://www.w3.org/2001/XMLSchema-instance" > > > >> xsi:noNamespaceSchemaLocation=" > > > >> > > http://www.weather.gov/view/current_observation.xsd > > "><credit>NOAA's > > > >> > > > > > >> > > National Weather Service</credit><credit_URL> > https://weather.gov/ > > > >> > > > > > >> > > </credit_URL><image><url> > > > >> http://forecast.weather.gov/images/xml_badge.png</url><title>NOAA's > > > >> > > > > > >> > > National Weather > > > >> > > Service</title><link>https://www.weather.gov > > > >> </link></image><suggested_pickup>15 > > > >> > > > > > >> > > minutes after the > > > >> > > > > > >> > > > > > > hour</suggested_pickup><suggested_pickup_period>60</suggested_pickup_period><location>Eugene, > > > >> > > > > > >> > > Mahlon Sweet Field, > > > >> > > > > > >> > > > > > > OR</location><station_id>KEUG</station_id><latitude>44.13333</latitude><longitude>-123.21444</longitude><observation_time>Last > > > >> > > > > > >> > > Update on Jul 16 2025, 7:54 pm > > > >> > > PDT</observation_time><observation_time_rfc822>Wed, 16 Jul 2025 > > > >> 19:54:00 > > > >> > > > > > >> > > > > > >> > > > > > > -0700</observation_time_rfc822><weather>Fair</weather><temperature_string>88.0 > > > >> > > > > > >> > > F (31.1 > > > >> > > > > > >> > > > > > > C)</temperature_string><temp_f>88.0</temp_f><temp_c>31.1</temp_c><relative_humidity>26</relative_humidity><wind_string>West > > > >> > > > > > >> > > at 8.1 MPH (7 > > > >> > > > > > >> > > > > > > KT)</wind_string><wind_dir>West</wind_dir><wind_degrees>250</wind_degrees><wind_mph>8.1</wind_mph><wind_kt>7</wind_kt><pressure_string>1008 > > > >> > > > > > >> > > > > > >> > > > > > > mb</pressure_string><pressure_mb>1008</pressure_mb><pressure_in>29.78</pressure_in><dewpoint_string>48.9 > > > >> > > > > > >> > > F (9.4 > > > >> > > > > > >> > > > > > > C)</dewpoint_string><dewpoint_f>48.9</dewpoint_f><dewpoint_c>9.4</dewpoint_c><heat_index_string>85 > > > >> > > > > > >> > > F (30 > > > >> > > > > > >> > > > > > > C)</heat_index_string><heat_index_f>85</heat_index_f><heat_index_c>30</heat_index_c><visibility_mi>10.00</visibility_mi><icon_url_base> > > > >> > > > > > >> > > http://forecast.weather.gov/images/wtf/small/ > > > >> > > </icon_url_base><two_day_history_url> > > > >> > > > > > >> > > http://forecast.weather.gov/data/obhistory/KEUG.html > > > >> > > > > > </two_day_history_url><icon_url_name>nskc.png</icon_url_name><ob_url> > > > >> > > > > > >> > > http://forecast.weather.gov/data/METAR/KEUG.1.txt > > > >> </ob_url><disclaimer_url> > > > >> > > > > > >> > > https://www.weather.gov/disclaimer.html > > > >> </disclaimer_url><copyright_url> > > > >> > > > > > >> > > https://www.weather.gov/disclaimer.html > > > >> </copyright_url><privacy_policy_url> > > > >> > > > > > >> > > https://www.weather.gov/notice.html > > > >> > > </privacy_policy_url></current_observation> > > > >> > > > > > >> > > I should get: > > > >> > > > > > >> > > $ echo $T > > > >> > > 88 > > > >> > > > > > >> > > Instead, I get: > > > >> > > $ echo $T > > > >> > > observation version="1 > > > >> > > > > > >> > > This has been working for several years. The script runs each > > hour, > > > >> pulling > > > >> > > the weather statement and culling the current temperature. The > > > >> remainder of > > > >> > > the script uses the variable to select the appropriate audio > file > > to > > > >> > > announce the current temperature. I set this up about five years > > ago > > > >> and my > > > >> > > feeble memory has no idea how it really works any more. > > > >> > > > > > >> > > Any ideas on what went wrong where? > > > >> > > > > > >> > > Thanks, > > > >> > > Michael > > > >> > > > > >> > > > > >> > > > > >> > I think the linebreaks are missing in your datafile. you are using > > > grep > > > >> to search for a specific line and then cut from there, but if > newlines > > > are > > > >> removed from the xml then it does what you described. > > > >> > > > > >> > XML does not require newlines in order to be valid and it's > possible > > > >> that the source of your data no longer prints the data with them. > > > >> > > > > >> > You will either need to make sure the downloaded xml includes all > > the > > > >> expected new lines or adjust the script to make sure it doesn't > > matter. > > > >> > > > > >> > -Ben > > > >> > > > >> This might be a more robust one-liner to get the information you > need: > > > >> > > > >> T=$(awk -F'temp_f>|</temp_f' '{print $2}' KEUG.xml | cut -d. -f1) > > > >> > > > > > > > > > > > > This seems to do the trick. Thank you so much. > > > > > > > > Michael > > > > > > > > > > > > > > Well, this is strange. I finally got to lay hands on the actual machine > > > running this. (CENTOS7) Running the script from the command line does > not > > > set the variable, however, running just that line by itself works fine. > > > Running it on my Mint machine at home works as desired. > > > I don't understand why the script would not set the variable, but does > > work > > > with just that line. > > > ??? > > > > > > Michael > > > > > > > Figured it out. I was checking the variable from the command line after the > script ran. That doesn't work. The variable is only in the script. If I > stick an "echo $T" in the script, it shows me it works. > I wish my memory worked better, I should have known this. > > However, now I have a new problem. The next line says: > > file=tmp0${T}.mp3 > > and should return > > echo $file > tmp071.mp3 > > But it returns > > tmp0 71.mp3 > > which, of course, does not work. Again, running them standalone from > command line works fine, but within the script adds the space. > > My brain hurts. > > Michael >