<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shell on Python Brasil — Aprenda Python em Português</title>
    <link>https://python.dev.br/tags/shell/</link>
    <description>Recent content in Shell on Python Brasil — Aprenda Python em Português</description>
    <generator>Hugo</generator>
    <language>pt-br</language>
    <lastBuildDate>Thu, 30 Jul 2026 01:15:59 +0000</lastBuildDate>
    <atom:link href="https://python.dev.br/tags/shell/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>shlex em Python: argumentos de shell sem quebrar comandos</title>
      <link>https://python.dev.br/blog/python-shlex-comandos-shell-seguros/</link>
      <pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/python-shlex-comandos-shell-seguros/</guid>
      <description>&lt;p&gt;O módulo &lt;code&gt;shlex&lt;/code&gt; ajuda a trabalhar com &lt;strong&gt;linhas de comando e argumentos de shell em Python&lt;/strong&gt; sem separar texto ingenuamente por espaços nem montar comandos frágeis com concatenação. Ele faz parte da biblioteca padrão e oferece três atalhos importantes: &lt;code&gt;shlex.split()&lt;/code&gt; para analisar uma linha, &lt;code&gt;shlex.quote()&lt;/code&gt; para representar um único argumento com segurança em shells Unix e &lt;code&gt;shlex.join()&lt;/code&gt; para transformar uma lista de argumentos em texto legível.&lt;/p&gt;&#xA;&lt;p&gt;A recomendação direta é: para executar programas, prefira sempre &lt;code&gt;subprocess.run()&lt;/code&gt; com uma &lt;strong&gt;lista de argumentos e &lt;code&gt;shell=False&lt;/code&gt;&lt;/strong&gt;. Use &lt;code&gt;shlex.split()&lt;/code&gt; quando você recebeu uma linha de comando confiável e precisa convertê-la em lista; &lt;code&gt;shlex.join()&lt;/code&gt; para exibir ou registrar uma lista; e &lt;code&gt;shlex.quote()&lt;/code&gt; apenas quando um shell Unix for realmente inevitável. &lt;code&gt;shlex&lt;/code&gt; reduz erros de parsing, mas não transforma entrada não confiável em um comando seguro por mágica.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
