Бесшумное сообщение системной ошибки в файле сценария и шахте дисплея

Проблема, кажется, пропускает texinfo, который заставляет процесс сборки прерываться (ищите журнал строки формы *** [directory_name] Error X). Это также говорит Вам, что Вам обычно не должен быть нужен он, если Вы не изменили источники для информационных руководств. Я предполагаю, что это находится в одной из загружающихся частей LFS, так как иначе Вы должны иметь makeinfo доступный уже.

Проверьте то, что исправляет Вас, применялись (если таковые имеются) - они, возможно, изменили некоторые файлы документации, таким образом инициировавшие восстанавливание. Можно также попытаться отключить здание руководства ( configure сценарий мог бы иметь опцию для этого).

3
25.10.2014, 18:06
4 ответа

Следует полезен следующий скрипт, он поможет вам отображать ваши пользовательские сообщения об ошибках.

#!/bin/bash

files=$(ls *.sh 2> /dev/null)

if [ -z "$files" ]
then
    echo "No script files found. Exiting.."
    exit
fi

echo "Moving all script files to script directory..."

for file in $files
do
    if ! mv $file $HOME/linux/scripts
    then
        echo "Unable to move file $file"
    fi
done 

Когда скрипт выполняется, список «*. Sh» файлы в текущем рабочем каталоге скриптов назначаются на файлов переменную.

Далее мы делаем проверку здравоохранения, чтобы увидеть, если $ файлы переменная пуста. Если это пусто, то это означает, что нет «*. Sh» файлы в каталоге.

Если файлы существуют, цикл для ITEERATE ITEERATES по переменным $ файлам и перемещает каждый файл. Если команда MV не удалась и ошибка будет напечатана.

Для получения более подробной информации о для LOOP см. В этом документе .

1
27.01.2020, 21:19

Я думаю, что это неправильный способ убить сообщение об ошибке. Что касается меня намного лучше, чтобы его использовать для проверки.

#!/bin/bash

if ls *.sh &> /dev/null
then
  echo "Moving all script files to script directory..."
  mv -v -n *.sh $HOME/linux/scripts
else
  echo "No files with .sh suffix -- nothing to move"
fi
2
27.01.2020, 21:19

В отношении других решений Костаса или Каннана: Эта

if ! mv $file $HOME/linux/scripts

должна быть заменена на

if ! mv "$file" "$HOME/linux/scripts/."

Также добавьте эту строку где-нибудь при старте скрипта

 mkdir -p "$HOME/linux/scripts"

Иначе, когда linux/scripts будет отсутствовать, каждый файл будет перемещен туда как файл и перезаписан предыдущий.

И если у вас есть пробелы в именах файлов или папок, кавычки понадобятся.

0
27.01.2020, 21:19

Добавить 2> / dev / null Вам mv Команда для перенаправления STDERR в / dev / null:

mv *.sh $HOME/linux/scripts 2>/dev/null
1
27.01.2020, 21:19

Теги

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