Принятие аргументов оболочки и обновление значений [closed]

Сохраните где-нибудь файл /root/addblock.sh. И замените инструкцию:

sed -n "/OLD=/ cOLD=${NEW}" /root/addblock.sh

этой инструкцией:

sed -i.bak "s/OLD=/ cOLD=${NEW}/" /root/addblock.sh

Пояснения

Опция -iиспользуется для внесения изменений непосредственно в файл .bak. ] будет использоваться для сохранения исходного содержимого /root/addblock.shв /root/addblock.sh.bak.

s в s/OLD=/cOLD=${NEW}/— это sed команда, которая используется для замены, без нее sedбудет работать как grep.

1
21.02.2017, 21:25
1 ответ

Вы можете просмотреть переменные, переданные вашему скрипту, следующим образом:

#!/bin/bash
echo "First parameter: $1"
echo "Second parameter: $2"
echo "And so on...."

echo "Number of parameters: $#"

Таким образом, для вашего примера возможен следующий код:

Увеличить : ./ inc_script.sh / path / в / файл 5

#!/bin/bash

AMOUNT=$(cat $1)

echo $(($AMOUNT + $2)) > $1

Уменьшить : ./ dec_script.sh / путь / к / файлу 5

#!/bin/bash

AMOUNT=$(cat $1)

echo $(($AMOUNT - $2)) > $1

С помощью $ () вы можете выполнить команду в подоболочке. В нотации $ (()) вы можете выполнять вычисления в bash.

0
28.01.2020, 01:00

Теги

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