как отправить целое число в качестве параметра [закрыто]

Если вы используете версию systemd старше 229, вам может потребоваться использовать 0 вместо бесконечности, чтобы отключить тайм-аут.

2
18.07.2016, 00:02
2 ответа

Нет причин использовать heredoc в этом контексте.

Приведенный ниже код отлично работает с bash версии 4.2.26:

#!/bin/bash
function f()
{
    echo $1;
};
for i in {1..20}; # This works for a range of integers, but for unrelated values, you can use "i in x y z" format
do
    f $i; 
done;

Если у вас все еще есть проблемы, пожалуйста, укажите версию bash и полный код, который вы тестируете.

2
27.01.2020, 21:50

Потеряйте heredoc , и он должен работать нормально:

#!/bin/bash
for ((i=0; i<=20;i++));do
    MYFUNCTION "-$i"
done

в качестве альтернативы вы можете использовать одинарный heredoc , который предотвратит $ i ] из , интерполированного из внешнего контекста, где он не установлен :

#!/bin/bash

bash << '_EOF_'
for ((i=0; i<=20;i++));do
    MYFUNCTION "-$i"
done
_EOF_

, но вряд ли есть веская причина для запуска другого bash из только что запущенного процесса bash.

8
27.01.2020, 21:50

Теги

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