findが返すファイル名に関係なく、次のスクリプトが常に機能するようにするにはどうすればよいですか?
#!/bin/sh
cmds_should_always_work() {
echo "\n\n*********************************" $1
stat --printf='%n' -- "$1" || echo STATFAILED
echo "\n----------------\n"
lsattr -d -- "$1" || echo LSATTRFAILED
echo "\n----------------\n"
};
for item in $(find "$1" -maxdepth 1 -mindepth 1); do cmds_should_always_work "${item}"; done
たとえば、ディレクトリで改行文字を含むファイルが見つかった場合、このスクリプトは中断されます。
また、ルックアップディレクトリの名前が$ schemaの場合、このスクリプトは親ディレクトリを返します。スクリプトにsomepath / \ $ schemaパスを提供してエスケープする必要があるのと比較して、スクリプトはこれをどのように防止しますか?