Рейтинг:0

Перевести команду bash в xonsh

флаг us

У меня есть скрипт .sh, который я использовал, но он больше не работает. Он проверяет, существует ли контейнер Docker:

если [ -z "$(docker ps -q -a -f name=mujoco_roboy)" ]

Это не работает в xonsh.

(docker ps -q -a -f name=mujoco_roboy) обеспечивает некоторый консольный вывод. Как я могу продолжить?

https://xon.sh/bash_to_xsh.html

Artur Meinild avatar
флаг vn
Кто проголосовал за закрытие, пожалуйста, отзовите свои голоса. Это совершенно правильный вопрос о другой оболочке Linux (Xonsh).
Рейтинг:0
флаг vn

Xonsh использует синтаксис Python (не Bash), поэтому оператор if построен по-другому (к сожалению, я не специалист по Python).

Но основная структура такова:

а = 200
б = 33
если б > а:
    print("b больше, чем a")
Элиф а == б:
    print("а и b равны")
еще:
    print("а больше б")

Помните, что в Python отступы важны и являются частью языка, вместо закрытия слов в Bash (фи).

я нашел это Справочник по Python, который, надеюсь, может помочь.

Florian Schneider avatar
флаг us
Спасибо за ответ :) Я программирую на питоне, именно поэтому я хотел получить xonsh в первую очередь. Но я не знаю, как это сделать на питоне. (docker ps -q -a -f name=mujoco_roboy) — это консольная команда, которая запрашивает вывод у docker. Я должен был как-то поймать это и оценить.
Artur Meinild avatar
флаг vn
МММ ясно. Так что на самом деле речь идет об оценке выражения, а не самого оператора if.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.