0

I want to do the following commands in ruby.

  1. ssh into another computer using ssh example@example
  2. set source file source ~/.profile
  3. cd to/some/folder
  4. call my shell script with parameters, a json formatted string ,./my_script.sh my_hash.to_json

However I am facing these problems: I call them in one line using backticks, it works, but it is a very bad practice in my opinion because it is not readable nor it is maintainable.

On the other hand, when I call my_hash.to_json, the resulted string has non-escaped double quotes, How do I escape them?

1 Answer 1

1

I would recommend to view this tutorial for ssh with ruby. then make a shell script and move it to server and then execute like a single command.

create a single shell script file for example script1 and then execute it at once instead of executing each command individually.

open file script1 using any editor.

copy all commands to script1 (each command in new line).

script1 file should look like this

#!/bin/bash

ssh example@example
source ~/.profile
cd to/some/folder

save file

make this file executable using chmod +x script

execute it in ruby like this [backtick]./script1[backtick]

note: copy script1 to usr/bin to avoid "./" and then try command only script1.

Reference for passing arguments in shell script is here.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.