![「パラメータリストが長すぎます」エラー解決方法[閉じる]](https://linux33.com/image/136931/%E3%80%8C%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%AA%E3%82%B9%E3%83%88%E3%81%8C%E9%95%B7%E3%81%99%E3%81%8E%E3%81%BE%E3%81%99%E3%80%8D%E3%82%A8%E3%83%A9%E3%83%BC%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
commnadを実行していて、ls -lt *$ID*
このコマンドを単独で実行すると機能しますが、スクリプト内では次のエラーが返されます
arg list too long
。このIDは一意であり、単一のファイルにのみこのIDがあります。スクリプトは、上記のエラーを返すことを除いて、本番開発環境で正常に実行されます。だから、次のコマンドも試しました。
find . -name "*$TN_ID*" | xargs -L 1
これは開発環境でも機能しますが、本番環境では機能しません。
答え1
この場合、「arg list too long」とは、パターンに一致するファイルが多すぎることを意味します。私の考えでは、パターンがすべてのファイルに一致するように変数TN_IDが設定されていないようです。変数に正しい値があることを確認するには、 find コマンドの前に $TN_ID のデバッグ出力を追加します。