] Ищите способ использовать пикилл вместо того, чтобы убивать. Он вернет 1, если ни один процесс не будет соответствовать. Проверьте статус выхода pkill, чтобы определить, действительно ли он убил что-либо [
]. Если вы используете Bash
, вы можете установить опцию nullglob
:
nullglob
If set, bash allows patterns which match no files (see
Pathname Expansion above) to expand to a null string,
rather than themselves.
, чтобы проиллюстрировать:
$ ls
test1.dummy test1.jpeg test1.jpg test1.test
$ shopt nullglob
nullglob off
$ for file in *.{jpg,jpeg,test,avi}; do
echo "$file size is $(stat -c '%s' "$file")";
done
test1.jpg size is 0
test1.jpeg size is 0
test1.test size is 0
stat: cannot stat ‘*.avi’: No such file or directory
*.avi size is
и если мы активируем Nullglob
:
$ shopt -s nullglob
$ shopt nullglob ## just to demonstrate that it is on
nullglob on
$ for file in *.{jpg,jpeg,test,avi}; do
echo "$file size is $(stat -c '%s' "$file")"
done
test1.jpg size is 0
test1.jpeg size is 0
test1.test size is 0
Кроме того, вы можете просто убедиться, что файл существует (я также использую этот пример Top, демонстрируй, что расширение скобки здесь не нужна):
$ for file in *jpg *jpeg *test *avi; do
[ -e "$file" ] && echo "$file size is $(stat -c '%s' "$file")"
done
test1.jpg size is 0
test1.jpeg size is 0
test1.test size is 0