fswatch 解析参数未返回预期值?
fswatch parsed argument not returning expected value?
我可能误解了 fswatch
的 xargs -I {}
解析参数。这应该 return 我指定目录中任何新事件的文件路径,对吗?
我下面的命令旨在监视 /my/path/to/watch
并在 /my/path/to/watch
中发生新事件时触发 my_script.py
。 my_script.py
需要与新事件关联的文件路径,这就是我认为我通过 {}
.
传递的路径
我的命令:
fswatch -0 /my/path/to/watch | xargs -0 -n 1 -I {} python my_script.py {} > fswatch.output &
在my_script.py
,我有
import sys
print sys.argv[0]
但这只是 returns my_script.py
我期望它 return 与 /my/path/to/watch
.[=22= 中的新事件关联的文件路径]
我在这里错过了什么?
当您从终端执行程序时,第一个参数将始终是您的程序的名称,这意味着 sys.argv[0] 将是您的脚本的名称。您想要使用的可能是 sys.argv[1],因为 sys.argv[0] 之后的所有内容都是传递给脚本的实际参数。
你可以这样看:
$ python my_script.py foo var
sys.args 看起来像这样:
| 0 | 1 | 2 |
| my_script.py | foo | var |
基本上,sys.args[0] 是脚本的名称,sys.argv[1] 等是传递给它的实际参数。
我可能误解了 fswatch
的 xargs -I {}
解析参数。这应该 return 我指定目录中任何新事件的文件路径,对吗?
我下面的命令旨在监视 /my/path/to/watch
并在 /my/path/to/watch
中发生新事件时触发 my_script.py
。 my_script.py
需要与新事件关联的文件路径,这就是我认为我通过 {}
.
我的命令:
fswatch -0 /my/path/to/watch | xargs -0 -n 1 -I {} python my_script.py {} > fswatch.output &
在my_script.py
,我有
import sys
print sys.argv[0]
但这只是 returns my_script.py
我期望它 return 与 /my/path/to/watch
.[=22= 中的新事件关联的文件路径]
我在这里错过了什么?
当您从终端执行程序时,第一个参数将始终是您的程序的名称,这意味着 sys.argv[0] 将是您的脚本的名称。您想要使用的可能是 sys.argv[1],因为 sys.argv[0] 之后的所有内容都是传递给脚本的实际参数。
你可以这样看:
$ python my_script.py foo var
sys.args 看起来像这样:
| 0 | 1 | 2 |
| my_script.py | foo | var |
基本上,sys.args[0] 是脚本的名称,sys.argv[1] 等是传递给它的实际参数。