btfs init :Ошибка поиска метаданных :Нет такого файла или каталога

Спасибо за ответы. Я тестировал разные вещи и пришел к следующему тестовому сценарию:

test.sh:

hist=`fc -nl -0`
# remove leading and trailing whitespaces
hist="$(echo "${hist}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
echo "Command line from history: '$hist'"

if [ -t 1 ]; then
  echo "Direct output to TTY, no pipe involved."
else
  echo "No TTY, maybe a piped command."
fi

if [ -p /dev/stdout ]; then
  echo "stdout is a pipe."
else
  echo "stdout is not a pipe."
fi

readlink -e /proc/self/fd/1
rst=$?
if [ $rst -eq 0 ]; then
  echo "Readlink test status okay, no pipe involved."
else
  echo "Readlink test status error $rst, maybe a piped command."
fi

Испытания:

$./test.sh test1
Command line from history: './test.sh test1'
Direct output to TTY, no pipe involved.
stdout is not a pipe.
/dev/pts/3
Readlink test status okay, no pipe involved.

$./test.sh test2 | cat
Command line from history: './test.sh test2 | cat'
No TTY, maybe a piped command.
stdout is a pipe.
Readlink test status error 1, maybe a piped command.

$ echo "another command before pipe doesn't matter" |./test.sh test3
Command line from history: 'echo "another command before pipe doesn't matter" |./test.sh test3'
Direct output to TTY, no pipe involved.
stdout is not a pipe.
/dev/pts/3
Readlink test status okay, no pipe involved.

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

Мне не удалось подавить вывод из «readlink» (или «file», как было предложено в Archemar ), когда статус был успешным («/dev/pts/3» ). Передача вывода в /dev/null или в переменную приведет к неисправности. Так что это не вариант для меня в сценарии.

Проверка телетайпа, о которой упоминал муру, проста и, возможно, уже достаточна для некоторых случаев использования.

Редактировать :Моя заслуга mosvy, потому что вопрос был в том, как получить полную командную строку, а не только определить, находится ли скрипт на трубе. я люблю простая часть «fc -nl -0» в его ответе, потому что дальнейшая настройка системы не требуется. Это не 100-процентное решение, но это только для моего личного использования и поэтому достаточно. Спасибо всем остальным за вашу помощь.

0
06.08.2021, 20:15
1 ответ

У меня была такая же проблема. Пытался установить BTFS на дроплете Digital Ocean с сервером Ubuntu. После установки пытаюсь запустить:

btfs init

Получал этот вывод:

Find metadata failed: No such file or directory

После правильного добавления пути после этого вопроса:

Как правильно добавить путь в PATH?

Работает

Generating TRON key with BIP39 seed phrase...

Теперь завершаем настройку, и проект Allspot будет иметь свой собственный узел BTFS!

0
21.09.2021, 18:30

Теги

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