Bagaimana saya bisa mengotomatiskan tugas ini?
1) Anda berada di A. 2) Anda ssh ke B. 3) Anda menjalankan skrip di B, yang membutuhkan parameter yang dikenal di A.
Pertama, saya pikir mungkin saya bisa mengirim nilainya ketika saya membuka koneksi dengan ssh. Kemudian, mungkin lebih sederhana, antara 1) dan 2), scp seluruh skrip ke lokasi yang sama di B (mengganti yang lama). Tapi tetap saja, bagaimana cara menjalankan skrip di B? (Yaitu, bagaimana mengotomatiskan langkah terakhir itu. Tentu saja, saya bisa menjalankannya secara manual setelah ssh.)
Pikiran lain, mungkin membuang ssh sama sekali - saya punya halaman web di B, jadi bisakah skrip entah bagaimana dipanggil melalui antarmuka web "di bawah tenda"?
Atau apakah Anda akan melakukannya dengan cara yang sama sekali berbeda?
Jawaban:
Ini akan dijalankan
myscript foobar
di server.sumber
~/.elm/aliases
.)"
) sebagai kebalikan dari yang tunggal ('
) penting di sini. Menggunakan ganda berarti bahwa shell pada mesin lokal Anda akan memperluas variabel, kemudian jalankanssh
perintah. Jika satu yang akan digunakan shell lokal tidak akan menyentuh perintah, yang dikirim pada kata demi kata tetapi masih diperluas di shell jauh.$myparameter
berisi spasi, itu akan terpecah di sisi server. Bash'sprintf
memiliki%q
format yang dapat Anda gunakan. Saya punya beberapa kode contoh, tetapi tidak cocok di sini. Saya akan membuat jawaban baru untuk itu.(Ini adalah tindak lanjut dari komentar saya pada jawaban yang diterima .)
Perhatikan bahwa jika
$myparameter
berisi spasi, itu akan terpecah di sisi server. Printf Bash memiliki%q
format yang dapat Anda gunakan. Contoh:sumber
Jika aman untuk berasumsi bahwa tidak
$myparameter
akan mengandung tanda kutip tunggal (jika tidak lihat di sini atau gunakan solusi oleh janmoesen), Anda dapat menempatkan tanda kutip tunggal di sekitar untuk menghindari masalah split-on-space di sisi server.printf '%q' ...
$myparameter
sumber