у меня есть этот псевдоним, определенный
псевдоним ajclean 'find $ RF_TOP / -type f -name "* ~"; \
find $RF_TOP/ -type f -name "*~" | sed "s/\/dpc/rm \/dpc/g" | bash; \
echo;'
псевдоним ajgshow 'ajclean; \
gshow; '
ajclean: находит все временные файлы в каталоге, определенном путем $ RF_TOP. То есть в строке 1 печатаются все файлы в каталоге dir,
, например:
/dpc/dir1/dir2/file.txt~
/ dpc / dir1 / dir2 / file .txt ~
строка 2 затем передает следующую команду bash и, таким образом, выполняется как команда
rm /dpc/dir1/dir2/file.txt~
rm / dpc / dir1 / dir2 / file.txt ~
ajclean работает должным образом, а ajgshow - нет. Что происходит, так это то, что gshow начинает выполняться до завершения работы ajclean, и поэтому временные файлы все еще присутствуют при запуске gshow. ajclean завершает печать имен файлов и удаляет их, как только увидит вывод gshow. таким образом, "$> ajgshow; gshow" выдает выходные данные с временными файлами в разделе игнорируемых файлов: раздел gshow, а затем другой вывод с удаленными этими файлами.
Как исправить псевдоним ajgshow или псевдоним ajclean, чтобы гарантировать, что ajclean завершится в ajgshow перед запуском gshow.
пс: я использую redhat, если это актуально ...