シェルスクリプトがMac OS X Catalinaで実行されているファイルが見つかりません。

シェルスクリプトがMac OS X Catalinaで実行されているファイルが見つかりません。

私にアドバイスをしていただければ幸いです。 Mac OS X Catalinaでシェルスクリプトを使用すると、スクリプトがクラッシュします。多くのセキュリティ変更があることがわかりましたが、これまでダウンロードフォルダにアクセスするための修正は見つかりませんでした。印刷するファイルにアクセスできないため、スクリプトでエラーが発生しました。スクリプトは次のとおりです。

do shell script "cat `ls -t /UserName/Downloads/Barcodes*.zpl | head -1` | lpr -P BarcodePrinter -o raw " with administrator privileges

ファイルの場所に対するいくつかの修正が試みられました。ダウンロードフォルダには、*バーコードファイルから生成された20文字以上の文字を可変とする長い名前のファイルがまだ含まれています。プリンタ名はまだ一致しますが、エラーは次のとおりです。

No such file or directory
lpr:  No file in print request

どんな提案にも感謝します。フォーラムを検索しましたが、初心者で正しい解決策が見つからないようです。

ベストアンサー1

コマンド自体が正しいとzsh仮定し、macOSでシェルを使用します。lpr

lpr -P BarcodePrinter -o raw < ~/Downloads/Barcodes*.zpl(.Nom[1])

glob(.Nom[1])修飾子は、前のglobbingパターンの動作を変更して通常のファイルにのみ一致し(これがまさにそのことです.)、一致するものがなければまったく拡張されません(シェルの場合N)。nullglobbash

修正タイムスタンプ順に一致する結果を並べ替えom[1]、最後に変更された一致ファイルであるリストの最初の項目のみを選択します。

パターンが何も一致しない場合、シェルは文句を言うでしょう(間違ったディレクトリを指定したり、間違ったファイル名を入力した場合はこれは行われません)。

zsh: no such file or directory: ~/Downloads/Barcodes*.zpl(.Nom[1])

シェルがそのようなエラーを報告すると、常に見つからないファイルのパス名を記録します(このパス名は質問のエラーから欠落しているため、問題の診断が簡単になります)。


以下のコメントに掲載されている追加情報は、ファイルの実際の名前が一致するかどうかを~/Downloads/zebraBarcodes*.zpl明らか~/Downloads/*Barcodes*.zplにしました~/Downloads/Barcodes*.zpl。更新されたパターンを使用した上記と同じアプローチが機能します。

おすすめ記事