Это базовая оболочка расширение . Поскольку вызывающая оболочка распознает *
как подстановочный знак, она фактически интерпретирует это для вас и передает список всех элементов в /var/ вашему сценарию.
Если вы экранируете подстановочный знак или заключаете в подстановочный знак, чтобы предотвратить его раскрытие в вызывающей оболочке, он будет передан вашему сценарию так, как вы ожидаете.
Вот два примера, которые, вероятно, сделают то, что вы хотите, если я правильно понимаю ваше намерение.
/path/to/script.sh '/var/run/*'
/path/to/script.sh /var/run/\*
Оба этих примера приводят к тому, что строка /var/run/*
передается КАК -ЕСТЬ вашему сценарию, где она становится $1
.
Предполагая, что это новая установка Ubuntu и файлы конфигурации более или менее находятся в состоянии по умолчанию, вы можете сделать следующее. Первый,используйте nmcli d
, чтобы получить некоторые сведения о вашей текущей настройке сети, а именно имя вашего устройства Ethernet, так как я буду использовать значение по умолчаниюeth0
/etc/network/interfaces
файла По пути /etc/network/interfaces
находится файл, который является одним из самых основных файлов конфигурации для NetworkManager, поскольку в нем содержатся сведения о конфигурации при использовании команд ifup
и ifdown
.
В состоянии по умолчанию вывод cat /etc/network/interfaces
будет выглядеть примерно так:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
Первая часть отвечает за петлю соединения с локальным хостом, и вы должны оставить ее в покое, а вот вторая часть вас интересует.
Если вы используете NetworkManager для управления подключениями, в его файле конфигурации в /etc/NetworkManager/NetworkManager.conf
будет указано:
[ifupdown]
managed=true
и будет обращаться к этому файлу interfaces
для настройки.
auto eth0
означает активацию интерфейса eth0
, а линии auto [interface name]
обычно активизируются при запуске.
allow-hotplug eth0
означает вызов сетевого интерфейса eth0
, когда udev
обнаруживает подключение нового сетевого кабеля.
iface eth0 inet dhcp
означает сетевой интерфейс (iface )eth0
, использующий сеть IPv4 (inet ), которому будет назначен адрес (dhcp ).
Чтобы eth0 использовал статический IP-адрес, необходимо изменить последнюю строку iface eth0 inet dhcp
(Я не знаю ваш формат IP-адресации, поэтому я собираюсь использовать общий по умолчанию, и вы можете изменить что соответственно от )до:
iface eth0 inet static
address 192.168.1.123/24
gateway 192.168.1.1
адрес 192.168.1.2/24
устанавливает IP-адрес и сетевую маску на 255.255.255.0
, а последняя строка указывает шлюз на192.168.1.1
После внесения изменений с правами sudo
сохраните файл interfaces
.
Выполнить:
sudo service networking restart && sudo service NetworkManager restart
Служба networking
, если вы посмотрите на ее файл .service
, на самом деле выполняет ifup -a --read-environment
, который ссылается на файл /etc/network/interfaces
.
Если у вас есть iface eth0 inet dhcp
в interfaces
вместе с allow-hotplug
, то в тот момент, когда вы подключите кабель Ethernet, система попытается получить правильный IP-адрес от DHCP-сервера. Поскольку на вашем Mac не работает DHCP-сервер, соединение в конечном итоге будет прервано по тайм-ауту. Причина, по которой вы можете разбудить его при повторном подключении разъема, заключается в том, что udev
снова обнаружит новое устройство, и будет вызван ifup
, чтобы попытаться вызвать его.
Такое поведение тайм-аута типично при подключении ПК к любому встроенному устройству для передачи по сети без запуска DHCP-сервера для адресации. Однако, если вы сначала вручную назначите статический IP-адрес встроенному устройству (Raspberry Pi )из той же подсети, что и ПК, передача будет работать нормально.
Беспроводной интерфейс wlan0
будет удерживаться в течение этого тайм-аута eth0
.
При нормальных обстоятельствах и с более или менее установленными настройками установки после -по умолчанию диспетчер соединений с графическим интерфейсом и соответствующие профили для eth0
всегда будут вторыми после того, что находится в вашем файле /etc/network/interfaces
, поскольку это будет прочитано в тот момент, когда вы подключите кабель Ethernet.
Изменение IP-адресации с dhcp
на static
в /etc/network/interfaces
и перезапуск сетевых служб должны решить вашу проблему