Могут быть и другие способы сделать это (Я не эксперт в csh/tcsh -Мне не нравился csh, когда мне приходилось его использовать в начале 90-х, и с тех пор я избегал его, насколько это было возможно ), но я нашел единственный способ сделать то, что вы хотите в tcsh, с помощью set nonomatch
или set noglob
. Например:
perlscript.pl:
#!/usr/bin/perl
@CMDLineArgs = ('-stuff', '-more_stuff', '-even_more', '*stuff', '-last_stuff');
system('./script.tcsh', @CMDLineArgs);
в качестве альтернативы, если вы не хотите вводить все одиночные -кавычки и запятые, используйтеqw()
:
@CMDLineArgs = qw(-stuff -more_stuff -even_more *stuff -last_stuff);
script.tcsh:
#!/bin/tcsh
set nonomatch
set flags=($argv[*])
foreach f ($flags)
echo $f
end
и вывод:
$./perlscript.pl
-stuff
-more_stuff
-even_more
*stuff
-last_stuff
Обратите внимание, что при этом каждый аргумент сохраняется как отдельный элемент в $flags
вместо объединения их всех в одну строку.
Естественно, я не знаю вашей точной настройки, но я думаю, что здесь происходят две вещи. Мои настройки аналогичны вашим тем, что у меня есть родная (нетегированная )VLAN с подсетью 192.168.1.0/24 и VLAN20, работающая на одном интерфейсе с подсетью 192.168.2.0/24.
Во-первых, адрес 169.254.243.53 является автоматически -назначенным локальным адресом канала. Я отключил это на своем с помощью LinkLocalAddressing=no
, как показано ниже :
# cat eth0.network
[Match]
Name=eth0
[Link]
RequiredForOnline=yes
[Network]
Address=192.168.1.14/24
Gateway=192.168.1.1
DHCP=no
DNS=192.168.1.7
NTP=192.168.1.7
LLDP=yes
EmitLLDP=yes
LinkLocalAddressing=no
VLAN=vlan20
Я не использую DHCP на этом устройстве для настройки интерфейса, поэтому мне нужно настроить такие вещи, как DNS, NTP и шлюз по умолчанию, что подводит меня ко второму пункту :, что делает как выглядит ваша таблица маршрутизации, т.е. вывод ip route
, на оба устройства?