string - 如何以编程方式将 MAC 地址插入/etc/network/interfaces?

标签 string bash ubuntu text insert

我正在尝试编写一个在使用 wlan0 时使用用户创建的 MAC 地址的脚本。界面。

为了测试,我创建了一个名为 testFile.txt 的文件,这是 /etc/network/interfaces 的副本.如果wlan0之后有接口(interface), 我不能使用 echo "$var" >> testFile.txt因为这只是将文本添加到末尾。

我能够找到 wlan0 的结尾界面文本,但我不知道如何插入那里。以下是我目前拥有的:

#!/bin/bash

echo "Enter MAC Address"
read var
log=$(cat testFile.txt | grep -o "wlan0.*" | grep -o dhcp)
echo $log
echo $log打印 dhcp .

我尝试添加 | echo "hwaddress ether $var" >> testFile.txt$log但这仍然附加到文件的末尾。
如何在 $log 之后直接插入?

最佳答案

问题

  • 无用的猫。不要那样做。
  • 你没有使用正确的工具来完成这项工作。使用 GNU sed 让自己的生活更轻松。

  • 解决方案
    # Insert hwaddress line into /etc/network/interfaces.
    read -p "Enter MAC Address: "
    sudo sed -i.bak "/iface wlan0/a\    hwaddress $REPLY" /etc/network/interfaces
    
    # Replace existing hwaddress line in /etc/network/interfaces.
    read -p "Enter MAC Address: "
    sudo sed -ri.bak "s/(hwaddress).*/\1 $REPLY/"
    

    关于string - 如何以编程方式将 MAC 地址插入/etc/network/interfaces?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720898/

    相关文章:

    Python 非严格搜索字符串中的文本

    string - 判断单词列表是否是彼此的字谜的简单方法是什么?

    python - 在字符串中查找插入

    javascript - 如何将字符串数组作为参数传递给函数?

    bash - sed问题:-bash:意外 token `('附近的语法错误

    linux - 读取输入而不回显不起作用(bash Shell 脚本)

    bash - 如何在 OS X 上编辑 $PATH (.bash_profile)?

    postgresql - 如何修复 postgres 安装 ubuntu 时的错误

    javascript - Node 应用程序未在远程服务器上运行,而是在 PC 上运行

    Ubuntu 中不支持 SQLCipher 的 SQLite 浏览器