При проверке существования команды,-n избыточно в командных тестах -v?
[ -n "$(command -v foo)" ]
и
[ "$(command -v foo)" ]
кажется, функционально эквивалентны, но большинство примеров, которые я видел, включают в себя тест -n
явно. Я полагаю, что если команда не существует, что эквивалентно:
[ "" ]
Это плохая практика, чтобы опустить -n
?
Да (я бы рассматривать это как плохая практика), но вы, вероятно, безопасно, если вы сделаете привычку искать имена команд нечетного мяч, который можно было бы спутать с вариантами 'test' (aka' ['). И это должно было быть довольно странным, чтобы он мог вызвать проблемы; Я не могу представить, как вы получите, например, '-z' from' command -v ... '. –