获取换行数并将每个换行存储在变量中

时间:2017-01-29 21:56:46

标签: linux bash networking interface wifi

我正在创建一个脚本,让您可以选择要使用的界面。

我需要一种方法来获取接口并将它们存储在一个变量中。

这是我的代码,但它只获取接口:

Interfaces=$(ifconfig | awk '{print $1}' | grep ':' | tr -d ':')

1 个答案:

答案 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