файл не создается после перенаправления и ошибки «cp: cannot stat»

Есть большая вероятность, что вы ищете Fish shell.

Вторая возможность, о которой я знаю, это Final Term - вы можете посмотреть его демо здесь. Остерегайтесь, однако, поскольку ее разработка была прекращена.

Если вам нужен не терминал, а некоторые возможности, например, выбор между опциями завершения, вы можете сделать это в bash, используя TAB после привязки menu-complete к нему:

bind '"\t":menu-complete'

Чтобы сделать его постоянным, запишите эту строку в ~/.inputrc файл:

"\t": menu-complete

0
19.02.2019, 21:53
1 ответ
if [[ -z $template_file ]]; then

Оператор -zпроверяет, пуста ли строка. Здесь значение template_fileне пустое, так как вы только что присвоили ему значение. Следовательно, команда внутри ifне запускается.

Если файл не существовал до запуска скрипта, он не будет существовать и во время cp.

Я не уверен, что вы пытаетесь протестировать здесь, но если вы хотите создать файл на случай, если он не существует, вам следует использовать ! -f $filename. -fпроверяет, существует ли файл, а !инвертирует тест.

Также обратите внимание, что в назначении тильда не раскрывается, а остается такой, как -, так как она находится в кавычках:

template_file="~/mytest_template.c";

Вы не используете эту переменную в последующем перенаправлении или в команде cp, поэтому у вас не возникнет проблем из-за этого.

Итак,

template=~/mytest_template.c
final=~/mytest.c
if [[ ! -f $template ]]; then
    echo "..." > "$template"
fi
cp "$template" "$final"
1
28.01.2020, 02:40

Теги

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