Escrevendo script para mac (alias scp com parâmetros padrão)

0

Eu tenho que escrever essas linhas com frequência:

# from project1 dir
scp app/models/user.rb [email protected]:/var/www/project1/app/models
# from project2 dir
scp app/views/posts/index.html.erb [email protected]:/var/www/project2/app/views/posts
scp -r app/mailers [email protected]:/var/www/project2/app/

então quero envolvê-lo como um script

scpd project1 app/models/user.rb
scpd project2 app/views/posts/index.html.erb
scpd project2 -r app/mailers

então scpd irá passar todas as opções para scp e tomar o primeiro argumento como um dirname no caminho /var/www/ do servidor.

Então a questão é: o que é uma maneira comum de escrever scripts de terminal em macos? E alguns links para ler sobre isso. Bater? E talvez eu possa escrever em Ruby? :)

    
por fl00r 08.06.2011 / 13:18

2 respostas

2

Qualquer um desses trabalhos. Bash, ruby, python, perl, todos eles vêm com o sistema. Faça como você sabe.

    
por 08.06.2011 / 13:22
1

Aqui está uma função bash para você:

scpd () {
    # the first argument is the project
    # the last argument is the file/dir to send
    # any arguments in the middle are scp options

    args=( "$@" )

    proj="${args[0]}"
    file="${args[@]: -1}"
    scp_args=( "${args[@]): 1: $(( ${#args[@]} - 2 ))}" )
    remote_dir="${file%/*}"

    scp "${scp_args[@]}" "$file" "[email protected]:/var/www/$proj/$remote_dir"
}

Você pode colá-lo em seu ~ / .bashrc

    
por 08.06.2011 / 15:12