Система Ruby эхо странное поведение цитаты - PullRequest
0 голосов
/ 09 июня 2018

Я веду дневник TIL и ежедневно использую несколько сценариев Ruby и bash для создания файлов, добавления содержимого, создания псевдонимов и запуска этих файлов в виде сценариев.

upd: thisпроисходит только в Windows, больше информации в нижней части этого сообщения.

upd01: Спасибо за @glennjackman.Его попытка обнаружила, что это поведение не реплицируется в других системах.

Супер сжатый вопрос

BASH:

echo 'hi' # hi

Рубин:

system("echo 'hi'") # 'hi'

Зачем в Ruby добавлять кавычки?

Краткий вопрос:

BASH:

$ echo 'echo 20180609_Saturday/20180609.sh' > 20180609_Saturday/20180609.sh

20180609_Saturday / 20180609.sh:

echo 20180609_Saturday/20180609.sh

Bash в Ruby:

system("echo 'echo #{file_path}' > #{file_path}")

20180609_Saturday / 20180609.sh:

'echo 20180609_Saturday/20180609.sh'

Почему в выводе запроса Ruby в Ruby появляются кавычки?

Длинное описание:

Одна из моих ручных процедур заключалась в добавлении строки во вновь созданный bash-скрипт, чтобы проверить, «запускается ли он, когда я его вызываю?»

$ echo 'echo 20180609_Saturday/20180609.sh' > 20180609_Saturday/20180609.sh

и эта команда create добавляет эту строку в файл 20180609_Saturday / 20180609.sh .

echo 20180609_Saturday/20180609.sh

Я принял решение добавить эту строку в мой скрипт на Ruby

system("echo 'echo #{file_path}' > #{file_path}")

и в 20180609_Saturday / 20180609.sh У меня есть строка с кавычками:

'echo 20180609_Saturday/20180609.sh'

То же самое с различными вариантами системы и обратными кавычками:

# Second variand
`echo 'echo #{file_path}' > #{file_path}"`
# Third variand
system("echo \"echo #{file_path}\" > #{file_path}")

У меня все еще есть эти цитаты в моем недавно созданном файле.Почему это происходит?

UPD: Это поведение зависит от платформы.

Windows 8.1

$ ruby -e "system(\"echo 'hi'\")" ;  ruby --version

Вывод

'hi'
ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32]

Ubuntu 16.04:

$  ruby -e "system(\"echo 'hi'\")" ;  ruby --version

Вывод:

hi
ruby 2.3.1p112 (2016-04-26 revision 54768) [i686-linux]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...