«> filename» будет работать не во всех шелах, хотя, писать в начале скрипта «#!/bin/bash» и использовать «cat /dev/null» или [ x"$foo" = xbar ], ИМХО, не логично.
Только почему ": > filename", а не просто «> filename»?
Только почему ": > filename", а не просто «> filename»?
потому-что :>filename это перенаправление (REDIRECTION) вывода команды, вот двоеточие это и есть команда. А вот где описан случай >filename я что-то не нашёл.
В интерактивном режиме - да, в скрипте - не всегда. (В том числе и переносимость, которую вы, судя по всему соизволили отнести к «придиркам», кроме того «cat /dev/null» - читабельнее).
: > filename
# The > truncates file "filename" to zero length.
# If file not present, creates zero-length file (same effect as 'touch').
# The : serves as a dummy placeholder, producing no output.
> filename
# The > truncates file "filename" to zero length.
# If file not present, creates zero-length file (same effect as 'touch').
# (Same result as ": >", above, but this does not work with some shells.)