Баш :Запуск команды (с определенным шаблоном )только в случае сбоя другой команды (с другим конкретным шаблоном )

Предполагая, что мы знаем, что все файлы имеют суффикс имени файла .htmlили .txtи что все каталоги имеют суффикс .directory, вы можете использовать:

for i in *.txt *.html
 do
  mv "$i" "${i%%.*}.directory/$i"
 done 

Запустите это в том же каталоге, где у вас есть файлы. Он удалит конечные.txt и.html из имен файлов, а затем переместит файлы в каталог назначения.

0
24.01.2020, 21:42
2 ответа

Ответ на другую проблему. Если пользователь хочет отредактировать основной файл уценки и хочет отредактировать индексный файл только в том случае, если он не существует, почему бы не написать функцию для этого? Тогда просто используйте функцию oSports. Рефакторинг, чтобы иметь общий код в функции.

# Internal edit markdown function
_emd(){
   if [ -e "/home/nikhil/Notes/$1/$2.md" ]
   then
       ${Editor:-vim} "/home/nikhil/Notes/$1/$2.md"
   else
       ${Editor:-vim} "/home/nikhil/Notes/$1/index.md"
   fi
}
oPhysics(){ _emd Studies Physics ; }
oChemistry(){ _emd Studies Chemistry ; }
oStudies(){ _emd Studies Studies ; }
oiStudies(){ _emd Studies index ; }
oFootball(){ _emd Sports Football ; }
oCricket(){ _emd Sports Cricket ; }
oSports(){ _emd Sports Sports ; }
oiSports(){ _emd Sports index ; }
1
28.01.2020, 02:29

Обстоятельства не очевидны, но простым решением может быть:

Сначала определите все подобные функции:

oStudies() { oiStudies; }

и др. затем позвольте вашему сценарию переопределить эти функции там, где это необходимо.

1
28.01.2020, 02:29

Теги

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