При использовании команд оболочки bash иногда бывает полезно подключиться к python и написать короткую программу, а затем, возможно, передать это во что-то другое. Я не нахожу много документации о написании таких программ на Python, хотя это похоже на опцию «-c» - это возможность использовать ... но при написании даже самой простой программы python компилятор, или я должен сказать, что интерпретатор жалуется. Смотрите пример ниже:.Написание сценариев python непосредственно в командной строке
$ python -c "
import os
if os.path.isfile("test"):
print "test is a file"
else:
print "test is not a file"
"
При вводе последнего "интерпретатор жалуется Это прекрасно работает, если я положил его в файле, но если я типа это так в командной строке я получаю ошибку
$ python -c "
import os
if os.path.isfile("test"):
print "test is a file"
else:
print "test is not a file"
"
Traceback (most recent call last):
File "<string>", line 4, in <module>
NameError: name 'test' is not defined
.
Я понятия не имею, почему интерпретатор жалуется здесь кто-то знает, почему это разве работает
Что им действительно после того, как что-то вроде этого:.?
$ cat somefile | python -c "
import re
check = re.search(pattern, <file input>)
"
Я не знаю, как получить доступ к выводам кошки в этой ситуации, поэтому я просто написал это буквально.
И, делая так, не забудьте только использовать двойные кавычки ('" ') вокруг строки в сценарии, а не одиночные кавычки (' ' '). Одиночные кавычки закончится сценарий резко и оставить оболочку, чтобы попытаться интерпретировать остальное. – cxw
Или избежать одиночных кавычек с '\' – Barranka
Да, спасаясь бы работать, мне грустно, потому что вещи не читаемые тогда. – ErlVolton