строкой set -xv выполняемая строка будет выводится, может быть это поможет, если не этой ситуации то может с какой то другой. Выполни отдельно эту строку посмотри что она выдает на консоль cat $HOME/.tasks | grep -v $ID с реальными ID и файлом в котором этот ID есть. На bash TODO: вполне реально написать это полноценный язык , но bash очень капризный. Из-за пробелов в строках все валится, надо брать в кавычки переменные "${ID}" "${HOME}" и т.д скорее тут именно в этом дело, может пробел в имени $HOME? Эта строка тут лишняя , проверка не нужна (if [[ $(grep $ID $HOME/.tasks) ]] ) можно сразу грепать удаляя сроку c $ID из листинга .tasks
Благодарю
Обсуждают сегодня