Я могу продублировать это, только если выполню такой скрипт:
$ echo $path
/usr/local/bin /usr/bin /usr/local/sbin /usr/sbin
$./script.csh
setting path
$ echo $path
/usr/local/bin /usr/bin /usr/local/sbin /usr/sbin
Если вы вместо источник скрипт, вы увидите другое поведение:
$ source script.csh
setting path
$ echo $path
/usr/local/bin /usr/bin /usr/local/sbin /usr/sbin /sbin:/mscc/apps
(Возможно, вы хотите /sbin /mscc/apps
с пробелом вместо двоеточия, разделяющим элементы?)
Если вам просто нужно получить MAC-адреса для системы и подключиться к интерфейсу, мы можем сделать это с помощью Bash и передать его программе C. Если мы посмотрим в /sys/class/net/*/
, то увидим, что имя интерфейса содержится в файле uevent
, а MAC-адрес находится в файле address
; поэтому мы можем объединить эти два файла вместе для каждого интерфейса. Примечание. :Мой bash не самый красивый, возможно, есть лучший способ сделать это.
[user@headdesk eth0]$ cat /sys/class/net/*/uevent /sys/class/net/*/address | grep -v IFINDEX | column | sed 's/INTERFACE=//'
eth0 fa:16:3e:ac:48:74
lo 00:00:00:00:00:00