特定のアップデートが原因でpowershellから直接実行すると、シェルスクリプトが失敗し、正常に動作します。

特定のアップデートが原因で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コードを見たかったので、ここで質問はあまり意味がありません。したがって、混乱を避けるためにこの編集セクションを見ないでください。上記の主な質問に集中してください。

関連情報