LINUX.ORG.RU
решено ФорумAdmin

Как убрать лишний пробел?

 , ,


0

1

Доброго всем дня.

Стоит задача: написать скрипт, который будет определять текущий активный интерфейс (с которого идёт пинг на 8.8.8.8), а затем записывать в файл эти данные в формате: /dev/«interface»/«ip»/

Сам скрипт готов и всё в порядке, кроме одного нюанса. Давайте покажу на примере:
my_ip=$(‘hostname -I’)
echo /dev/$my_ip/test

Вывод: /dev/192.168.0.64 /test

Как убрать долбанный пробел?))) Всем заранее спасибо )



Последнее исправление: zerropull (всего исправлений: 3)

Например так

my_ip=$(hostname -I | tr -d ' ')
или
echo "/dev/${my_ip%% }/test"
так.

Xenius ★★★★★
()
int@blackhorse ~ 0 0.76 $ str="string_"
int@blackhorse ~ 0 0.70 $ echo "$str"
string_
int@blackhorse ~ 0 0.64 $ echo "${str::-1}"
string
int@blackhorse ~ 0 0.64 $
ubik
()

my_ip=$(‘hostname -I’)

Как только объяснишь, что здесь написано. Что за кавычки? Зачем они здесь? Потом вдруг выяснится, что лишних пробелов нет.

anonymous
()

my_ip=$(‘hostname -I’)

$man hostname
...
-I, --all-ip-addresses
              Display all network addresses of the host. This  option  enumerates  all  configured  addresses  on all network interfaces. The loopback interface and IPv6 link-local  addresses  are  omitted. Contrary to option -i, this option does not depend on name resolution. Do not make any assumptions about the order of the  output.


--all-ip-addresses
Display all network addresses
This option enumerates all configured addresses on all network interfaces

Вас точно только пробел беспокоит?

anc ★★★★★
()

man bash, буквально

в баше есть встроенные утилиты для обработки регекспов.

если вообще пробелы не нужны, то

f=«asdfasd asdfad»; echo ${f// /}

soomrack ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.