Добавить stderr и stdout в файл

Ваш скрипт и особенно его внутренние команды cd прекрасно работают при вызове из bash с использованием source или эквивалентных . команды.

Главная проблема в том, что, как уже было сказано в комментарии @adonis, ваша оболочка, после правильной смены каталога, выйдет, если только файл с точным именем "*.cfg" не существует, что очень сомнительно.

Поскольку я предполагаю, что вы хотите использовать *.cfg в качестве образца, вот как я бы слегка изменил ваш скрипт, чтобы он работал как ожидалось:

#!/bin/bash # Note that the shebang is useless for a sourced script

model_dir=/mypath

chdir() { # use either function or (), both is a non portable syntax
  cd $1
}

chdir ${model_dir}/config
if [ ! -s *.cfg ]; then # Single brackets here for the shell to expand *.cfg
  echo $(date) "configure file does not exist"
  exit 1  # dubious in a sourced script, it will end the main and only shell interpreter
fi
0
08.05.2018, 06:24
0 ответов

Теги

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