непонятки с пробелом в bash (ash?)

Apr 08, 2014 23:35

водрузил на breaking barrier (openwrt) 1wire, имею папку с датчиком, в нем файл temperature ( Read more... )

bash, костыли, кривые руки

Leave a comment

Comments 25

vovabublikov April 8 2014, 19:43:43 UTC
не понял - а как и чем формируешь ???

Reply

redddis April 8 2014, 19:48:40 UTC
mytemp=$(cat /mnt/1wire/28.831BED020000/temperature)
myurl='http://myserver/templogger.php?id=1&temperature='$mytemp
echo $myurl
myurl=${myurl/ /}
echo $myurl
выводит одинаковую строчку
если же задавать
myurl='2 we r wr 2 r '
то по одному пробелу оно исправно удаляет…
короче, глючит нас… :-(

Reply

bond_jimme April 8 2014, 19:59:02 UTC
пробел, похоже, в $mytemp.

Reply

redddis April 8 2014, 20:04:07 UTC
когда я делаю echo $mytemp я никакого пробела не вижу.
потом, разве вторая строчка (myurl='http://myserver/templogger.php?id=1&temperature='$mytemp) не переносит пробел из mytemp в myurl?
и самое интересное, когда я с пробелом делаю wget, мне пишут wget: server returned error: HTTP/1.0 400 Bad Request
когда я копирую из терминала echo $myurl и вставляю в браузер - всё окей…
вот и хз как тут быть…

Reply


vovabublikov April 8 2014, 20:06:45 UTC
и так тоже ...
temp=$(cat netemp)
myurl="http://myserver/temperature=$temp"
echo $myurl

файлик netemp
2.2

результат
http://myserver/temperature=2.2

Может кавычки двойные поставить и переменную внутри разместить ?

Reply

redddis April 8 2014, 20:10:50 UTC
фиг знает - пробовал, не помогает. вот что обнаружил: этот самый $temp заканчивается на 0x0A - может в этом дело?

Reply

redddis April 8 2014, 20:12:48 UTC
скопировал непосредственно файл temperature, посмтрел его двоичным редактором - там аж шесть пробелов..

Reply

redddis April 8 2014, 20:13:58 UTC
так и есть .поставил шесть строчек для удаления пробела - заработало! спасиб!

Reply


mak_ April 8 2014, 20:16:42 UTC
так до бесконечности гадать можно. полный текст скрипта покажите.

Reply


dikiy_mujchina April 8 2014, 20:43:01 UTC
tr -s ' '
удалит все повторяющиеся пробелы до одного...
если надо вообще все пробелы прибить,то
tr -d ' '

Reply

redddis April 8 2014, 20:48:26 UTC
еще бы понять, как им пользоваться)
я вообще хотел в crontab -e прописть одной строкой wget, но пришлось выворачиваться с промежуточным файлом…

Reply

dikiy_mujchina April 8 2014, 20:54:01 UTC
cat file | tr -d ' ' >file2
удалит все пробелы в file и запишет результат в file2

Reply

dikiy_mujchina April 8 2014, 20:54:54 UTC
наверняка можно и одной строкой. дайте ваш скрипт для кронтаб...

Reply


Leave a comment

Up