Script para criar arquivos em um modelo

2

Acabei de escrever uma função no meu ~/.bashrc que me permitirá criar uma pasta para um novo site com um comando. A função é assim:

function newsite() {
  mkcd "$*"  # mkdir and cd into it
  mkdir "js"
  mkdir "imgs"
  touch "index.html"
  touch "main.css"
  vim "index.html"
}

Woo hoo super função complicada ... Ok, com toda a seriedade eu entendo que isso é realmente básico, é a primeira função que fiz sem copiar e colar on-line, embora tenha paciência comigo.

Agora, o que eu gostaria de fazer é, em vez de apenas tocar index.html e main.css Eu gostaria de criar arquivos de modelo básicos para index.html e main.css problema é que eu não tenho absolutamente nenhuma idéia de como fazer naquela. Eu não sei muito sobre como gravar arquivos usando comandos bash. Normalmente eu apenas abriria os arquivos no vim e iria para a cidade, mas eu gostaria de ter algo já iniciado quando eu entrar no vim ...

    
por CaldwellYSR 10.02.2012 / 04:53

2 respostas

3

A ideia de jw013 e a resposta da HaiVu estão corretas. No entanto, por uma questão de perfeição para qualquer um que venha a esta questão querendo a resposta, aqui está:

function newsite() {
  mkcd "$*"  # mkdir and cd into it
  mkdir "js"
  mkdir "imgs"
  cat > index.html <<'EOI'
<html>
<head>
</head>
<body>
</body>
</html>
EOI
  cat > main.css <<'EOI'
body {
 font-family: Arial;
}
EOI
  vim "index.html"
}

A coisa <<'EOI' é chamada de heredoc , a maioria das linguagens de script as possui.

    
por 10.02.2012 / 06:25
6

Eu gosto da ideia do jw013:

mkdir -p ~/site_template/{js,imgs}
# Creates all the files in this directory: index.html, main.css, ...

Agora, quando for a hora de criar um novo site:

cp -r ~/site_template ~/my_site

Isso seria muito mais fácil. Além disso, você pode editar seus arquivos de modelo de site da maneira que desejar.

    
por 10.02.2012 / 05:34