Просто используйте эту простую команду
sudo apt-get build-essential
Он автоматически исправит все отсутствующие пакеты.
Если эта команда не запущена, она автоматически спросит, что пакет отсутствует, и вам нужно установить этот пакет, а затем запустить эту команду
Основная проблема заключается в том, что вы заключаете все в подстановку команд в двойные -кавычки:
FILEDIR=$("ls -1t [dir]*.log | sed -n '$c p'")
Это будет указывать оболочке найти исполняемый файл с дословным именемls -1t [dir]*.log | sed -n '$c p'"
и без аргументов, в отличие от выполнения команды ls
с параметрами -1t
и операндом [dir]*.log
, вывод которой должен быть передается в исполняемый файл sed
с параметром -n
и аргументом '$c p'
. Попробуйте убрать двойные -кавычки, как в
FILEDIR=$(ls -1t [dir]*.log | sed -n '$c p')
Однако тогда вы столкнетесь с проблемой, что раскрытие переменной отключено в вашей одиночной команде -в кавычках sed
. Один рекомендуемый способ состоит в том, чтобы разорвать одинарные -кавычки и поместить переменную в двойное -междометие в кавычках, как в
FILEDIR=$(ls -1t [dir]*.log | sed -n "$c"' p')
Кроме того, я должен выдать обязательное предупреждение , чтобы не анализировать выводls
. ;)