Привет, я полный новичок в bash и кодировании в целом. У меня есть эта экранная команда, которую я хочу выполнить. Я уже запустил консоль Minecraft на экране "ftb":
screen -S ftb -p 0 -X stuff "tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]"
Но команда путается со всеми этими кавычками. Я пробовал это до сих пор, но безуспешно...
#! /bin/sh
say_this()
{
screen -S ftb -p 0 -X stuff "$1^M"
}
say_this "tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]"
Есть ли способ инкапсулировать команду, которую я хочу выполнить в консоли Minecraft, так, чтобы screen игнорировал все кавычки и просто отправлял и выполнял всю команду в консоли Minecraft на экране «ftb»?
Эту команду следует написать и выполнить в консоли:
tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]
решение1
Это оболочка, а не screen
вещь. Вам нужно поместить все это в одинарные кавычки. Единственный специальный символ в одинарных кавычках — это одинарная кавычка (она заканчивает кавычку).
Поэтому это должно быть слово
say_this 'message'
например
say_this 'tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]'