Почему даже при исполнении скрипта bash с &> /dev/null все равно выводит в терминал

Я использую следующий скрипт

#!/bin/sh
sysctl -w net.ipv4.tcp_ecn=0 &> /dev/null

Даю ему права chmod +x temp.sh Затем выполняю его sudo ./temp.sh вывод в терминале

net.ipv4.tcp_ecn = 0

Вопрос почему вообще идёт вывод если я использую &> /dev/null и как мне полность убрать вывод?


Ответы (1 шт):

Автор решения: Alexey Ten

Либо исправьте шебанг на bash

#!/bin/bash
sysctl -w net.ipv4.tcp_ecn=0 &> /dev/null

Либо не используйте &>, а напишите стандартное перенаправление

#!/bin/sh
sysctl -w net.ipv4.tcp_ecn=0 > /dev/null 2>&1
→ Ссылка