我正在创建一个脚本,让您可以选择要使用的界面。
我需要一种方法来获取接口并将它们存储在一个变量中。
这是我的代码,但它只获取接口:
Interfaces=$(ifconfig | awk '{print $1}' | grep ':' | tr -d ':')
答案 0 :(得分:2)
您只需要检查包含接口名称的行,而不是包含详细信息的行。在ifconfig
中,细节线以空格开头;在ip
中,接口行以数字开头。
在bash中,您可以使用select
创建一个简单的菜单:
#! /bin/bash
select interface in $(ip link show | grep '^[0-9]' | cut -f2 -d:) ; do
if [[ $interface ]] ; then
echo You selected $interface
break
fi
done
或
select interface in $(ifconfig -a | grep -v '^ ' | cut -f1 -d' ') ; do
if [[ $interface ]] ; then
echo You selected $interface
break
fi
done