Чтение пользовательского ввода с последующим выводом в файл

В последних версиях Cinnamon для этого есть опция. Откройте "Настройки Cinnamon", нажмите на "Горячий угол" и выберите "Справа сверху".

Если у вас нет этой опции, вам нужно обновить Cinnamon:

$ sudo apt-get install cinnamon
0
04.04.2018, 23:10
1 ответ

Вот скрипт для начала.
Он принимает port nameв качестве входных данных, поскольку файлы ifcfgсоответствуют имени порта, поэтому, если предоставленное имя порта недействительно, выдается ошибка.
Кроме того, вы можете добавить дополнительные параметры, такие как IPADDR, DEVICEи т. д., которые, если они присутствуют в файле ifcfg -, будут заменены новым предоставленным значением, в противном случае они будут добавлены к файлу.

#!/usr/bin/bash

function usage() {
    echo "Usage:"
    echo "$0 <port-name>"
}

function input_to_file() {
    param=$1
    value=$2
    portname=$3
    ifcfgfile="/etc/sysconfig/network-scripts/ifcfg-$portname"
    echo $param=$value
    grep -q "^$param=" $ifcfgfile && sed "s/^$param=.*/$param="$2"/" -i $ifcfgfile ||
    echo $param="$value" >> $ifcfgfile
}

if [[ $# -lt 1 ]]; then
    usage;
    exit 1;
fi

portname=$1

# Validate the port-name passed
ifconfig $portname &> /dev/null
if [[ $? -ne 0 ]]; then
    echo "Invalid port name passed"
    exit 1
fi    

ifcfgfile="/etc/sysconfig/network-scripts/ifcfg-$portname";
# Create file if not present for a valid port. This is actually not required if you are creating file prior to running script.
if [ ! -f $ifcfgfile ]; then
    touch $ifcfgfile
fi

echo -n "ONBOOT=[yes/no]: ";
param="ONBOOT"
read value
input_to_file $param $value $portname

Дальнейшим усовершенствованием этого скрипта будет проверка входных данных, например, если значение для ONBOOTотличается от yes/ no, выдача ошибки, если передан неверный IPADDR, выдача ошибки и т. д. Однако, я оставляю это вам на ваши требования.

0
28.01.2020, 04:26

Теги

Похожие вопросы