【问题标题】:Getting number of newlines and storing each in a variable获取换行符的数量并将每个换行符存储在一个变量中
【发布时间】:2017-01-29 21:56:45
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: linux bash networking interface wifi


    【解决方案1】:

    您只需要检查包含接口名称的行,而不是包含详细信息的行。在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
    

    【讨论】:

    • 谢谢,这正是我需要的:D
    • 但是,有没有办法改变“#”?提示?
    • @MaliciouZzHD:当然,设置PS3='Select an interface: '
    • 谢谢,我只是在学习如何使用 PS1 更改 bash 提示符
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2022-11-17
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多