某些更新导致 shell 脚本失败,直接从 powershell 运行时工作正常

某些更新导致 shell 脚本失败,直接从 powershell 运行时工作正常

电话

instaloader --post-filter="likes > 16720 and not is_video and date_utc >= datetime(2021, 5, 
29)" --no-profile-pic --no-videos --count=12 cristiano

工作正常。

但是放入相同的代码test.sh,然后像这样从 powershell 运行它

sh .\test.sh

或者

sh ./test.sh

或者

sh test.sh

我收到这样的错误

usage: 

instaloader [--comments] [--geotags]
            [--stories] [--highlights] [--tagged] [--igtv]
            [--login YOUR-USERNAME] [--fast-update]
            profile | "#hashtag" | %location_id | :stories | :feed | :saved
instaloader --help

instaloader: error: unrecognized arguments: cristiano

如果您想亲自测试它,只需instaloader安装pip install instaloader==4.7.1

.shPS:几天前,同样的脚本在 -files 中也可以正常工作,也许对我的 bash/powershell/windows10 的一些更新导致了这个问题。我猜想问题在于它能够转义引号内的空格。

我使用的是 bash 4.4。并且没有使用 WSL。

编辑:

我通过临时修改修改了我的脚本,使其正常工作,直到这个问题得到解决。我所做的是使用 python 运行命令,现在我的test.sh看起来像这样

FILTER="likes > 16720 and not is_video and date_utc >= datetime(2021, 5,  29)"
CMD="instaloader --post-filter=\""$FILTER"\" --no-profile-pic --no-videos --count=12 cristiano"
echo "import os" > test.py
echo "os.system('"$CMD"')" >> test.py
python test.py

来自 python 的调用工作正常。伙计们,这个黑客工作得很好,没有问题。由于 @roaima 想查看我在此处添加的工作 python 代码,因此这里的问题没有多大意义。因此,为了避免混淆,不要查看此编辑部分,只需关注上面的主要问题。

相关内容