小编Dan*_*lez的帖子

如何防止在 make / shell 中对字符串进行评估?

我有这个makefile:

echo:
    echo "PASS=$(PASS)"
Run Code Online (Sandbox Code Playgroud)

我调用:

PASS='MYPA$$' make
Run Code Online (Sandbox Code Playgroud)

这显示了我:

echo "PASS=MYPA$"
PASS=MYPA$
Run Code Online (Sandbox Code Playgroud)

有人在评估$$->$

这是壳吗?不是在输入值时,因为我使用单引号,防止外壳对其进行评估。

也许 make 调用的 shell 正在执行此操作...

或者是不是 make本身?

我怎样才能避免它?

bash shell makefile gnu-make

4
推荐指数
1
解决办法
614
查看次数

如何告诉docker-compose exec从stdin读取?

docker-compose exec从读取时失败stdin

$ echo "use mydb; show measurements;" | docker-compose exec influxdb influx
Connected to http://localhost:8086 version 1.2.4
InfluxDB shell version: 1.2.4
> Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 9, in <module>
    load_entry_point('docker-compose==1.9.0', 'console_scripts', 'docker-compose')()
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 65, in main
    command()
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 117, in perform_command
    handler(command, command_options)
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 462, in exec_command
    pty.start()
  File "/usr/local/lib/python2.7/dist-packages/dockerpty/pty.py", line 338, in start
    io.set_blocking(pump, flag)
  File "/usr/local/lib/python2.7/dist-packages/dockerpty/io.py", line 32, in set_blocking
    old_flag = fcntl.fcntl(fd, fcntl.F_GETFL) …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

3
推荐指数
1
解决办法
1629
查看次数

为什么不能在python中将类属性命名为保留字?

似乎保留字不能在python中用作属性:

$ python
Python 3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 13:51:32) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
>>>     global = 3
  File "<stdin>", line 2
    global = 3
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这似乎是明智的,因为它是模棱两可的:我在global这里使用关键字吗?很难说。

但这不是明智的恕我直言:

>>> class A: pass
>>> a = A()
>>> a.global = 3
  File "<stdin>", line 1
    a.global = 3
           ^
SyntaxError: invalid syntax
>>> a.def = 4
  File …
Run Code Online (Sandbox Code Playgroud)

python reserved-words class-attributes

3
推荐指数
1
解决办法
479
查看次数