Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- """
- [deadeye@nexus ~]$ python3 out.py \
- <(echo "Hello World") \
- <(echo "Enter the Matrix") \
- <(echo "Oh, it's an countdown starting at 63") \
- <(echo "Another argument")
- Printing content from 1. argument: /dev/fd/63
- Hello World
- Printing content from 2. argument: /dev/fd/62
- Enter the Matrix
- Printing content from 3. argument: /dev/fd/61
- Oh, it's an countdown starting at 63
- Printing content from 4. argument: /dev/fd/60
- Another argument
- """
- import sys
- arguments = sys.argv[1:]
- message = rf"""
- python3 {sys.argv[0]} \
- <(echo "Hello World") \
- <(echo "Enter the Matrix") \
- <(echo "Oh, it's an countdown starting at 63") \
- <(echo "Another argument")
- """.lstrip()
- if not arguments:
- raise SystemExit(message)
- for number, file in enumerate(sys.argv[1:], start=1):
- print(f"Printing content from {number}. argument: {file}")
- if not file.startswith("/dev/fd/"):
- print(f"Argument {number} is not a PIPE: {file}")
- continue
- with open(file) as fd:
- try:
- while chunk := fd.read(1024):
- print(chunk, end="")
- except UnicodeDecodeError:
- print(
- f"Could not decode file '{file}' from argument {number}. UTF8 encoding is expected. Don't cat binary files"
- )
- break
- print()
Advertisement