Dies beantwortet Ihre Frage wahrscheinlich nicht wirklich, aber Sie finden sie möglicherweise trotzdem nützlich.
Der erste Befehl erstellt das Skript, das vom zweiten Befehl angezeigt wird.
Der dritte Befehl macht dieses Skript ausführbar.
Der vierte Befehl enthält ein Verwendungsbeispiel.
john@malkovich:~/tmp/so$ echo $'#!/usr/bin/env python\nimport textwrap, sys\n\ndef bash_dedent(text):\n """Dedent all but the first line in the passed `text`."""\n try:\n first, rest = text.split("\\n", 1)\n return "\\n".join([first, textwrap.dedent(rest)])\n except ValueError:\n return text # single-line string\n\nprint bash_dedent(sys.argv[1])' > bash_dedent
john@malkovich:~/tmp/so$ cat bash_dedent
#!/usr/bin/env python
import textwrap, sys
def bash_dedent(text):
"""Dedent all but the first line in the passed `text`."""
try:
first, rest = text.split("\n", 1)
return "\n".join([first, textwrap.dedent(rest)])
except ValueError:
return text # single-line string
print bash_dedent(sys.argv[1])
john@malkovich:~/tmp/so$ chmod a+x bash_dedent
john@malkovich:~/tmp/so$ echo "$(./bash_dedent "first line
> second line
> third line")"
first line
second line
third line
Beachten Sie, dass es sinnvoller ist, das ausführbare Skript ~/bin
so zu verschieben, dass es sich in Ihrem Pfad befindet , wenn Sie dieses Skript wirklich verwenden möchten .
Überprüfen Sie die Python-Referenz auf Details zur Funktionsweise textwrap.dedent
.
Wenn die Verwendung von $'...'
oder "$(...)"
für Sie verwirrend ist, stellen Sie eine andere Frage (eine pro Konstrukt), falls noch keine vorhanden ist. Es kann hilfreich sein, einen Link zu der Frage bereitzustellen, die Sie finden / stellen, damit andere Personen eine verknüpfte Referenz haben.