Перенаправление ввода из файла в программу

En el nivel más alto, orange pi actuará como una puerta de enlace de Internet para su red. Básicamente necesitas configurar orange pe como enrutador, lo más común es usar NAT para esto.

LAN ---WIFI ---OrangePI ---PPP ---GSM

por lo que debe averiguar lo siguiente:

cómo configurar su GSM para raspbian -Le sugiero que busque esto de acuerdo con su modelo de módem.

Cómo configurar NAT entre WAN y PPP (esto se describe para muchas distribuciones y debería ser igual para esta ).

Cómo hacer el reenvío de puertos en Linux (descrito en muchos procedimientos también ).

Los dispositivos de red que accedan a Internet a través de Orange pi deberán poder acceder a la dirección IP de wifi de orange pi.

Los dispositivos de red que accedan a Internet a través de Orange pi deberán tener la dirección IP de wifi de orange pi configurada como puerta de enlace.

1
14.01.2017, 23:22
2 ответа

То, что вы написали, - это не программа, считывающая ввод из файла, а программа, которая принимает ввод в виде позиционных параметров (также называемых аргументами командной строки). Оператор перенаправления < отправляет данные вашего файла в стандартный поток ввода программы (также известный как stdin ), который ваша программа игнорирует.

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

#!/bin/bash
read a
read b
num=$((a+b))
echo $num

. Теперь, когда вы перенаправляете stdin из тестового файла, результат должен быть

$ ./newprog < test1.in
2

. вы могли бы использовать утилиту xargs для чтения данных вашего файла и передачи его содержимого в вашу программу в качестве аргументов

$ xargs -a test1.in ./prog
2
5
27.01.2020, 23:16

Написанная вами программа:

#!/bin/bash
num=$(($1 + $2))
echo "$num"

Ожидает значения $ 1 и $ 2 (которые являются позиционными аргументами ), который необходимо указать в списке аргументов программы (скрипта).
Чтобы заставить такую ​​программу работать, вам нужно вызвать ее следующим образом:

$ ./prog 3 5 
8

Поместите каждый аргумент $ 1 и $ 2 в вызывающую командную строку.


Если вам нужна программа, которая считывает ввод из файла, вам нужно использовать read:

#!/bin/bash
read var1
read var2
num=$((var1 + var2))
echo "$num"

Затем вы вызываете ее так:

$ ./newprog < test1.in
2
1
27.01.2020, 23:16

Теги

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