Это, вероятно, то, что вам нужно
my_command> output.log 2> & 1 &
это запустит вашу команду, перенаправляя как stdout, так и stderr в некоторый output.log
, который вы можете указать. Если вам вообще не нужно сохранять вывод - вы можете использовать / dev / null
вместо фактического файла.
&
выполнит команду в фоновом режиме, чтобы вы могли продолжать вводить команды во время ее выполнения.
2> & 1
перенаправляет stderr на stdout, чтобы перехватить весь вывод.
также, когда вы запускаете такую команду, вы должны получить подтверждение от ядра, подобное этому:
[2] 1234
Это означает, что ваш процесс выполняется в фон и его идентификатор - 1234
, поэтому вы можете убить его позже, если хотите, с помощью kill -9 1234
Вам нужно использовать $
для расширения temp в оболочке. (Поскольку ваш сценарий написан, вы пытаетесь сравнить литеральную строку temp
с целым числом0
). Вы также должны процитировать его:
x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if [ "$temp" -gt 0 ]
then
echo "inside"
fi
Если вы используете bash, лучшим способом сделать это будет использование арифметического выражения bash, например:
x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if ((temp>0)); then
echo "inside"
fi
Внутри арифметического выражения ((…))
вам не нужен $
для расширения, и вы не можете заключать в кавычки.