Чем больше я пишу Python, тем больше я ненавижу сценарий оболочки (bash)
например
if ["foo" = "foo"]; then
echo "expression evaluated as true"
fi
Угадайте, что такое ошибка? мне нужен пространство после [
, который так сложно отлаживать и бессмысленно, в Python, который короток и прост
if "foo" == "foo":
print "expression evaluated as true"
Поскольку Python сейчас доступен в большинстве систем, как вы думаете, это хороший шанс отказаться от сценария оболочки для новой функции и перейти на Python?
В чем причина для тех, кто все еще пишет новый сценарий оболочки?
Просто. 1) subprocess
раздражает цепочка. 2) Печатать проще for f in * ; do foo "$f" ; done
как одноразовый, чем написать сценарий Python, чтобы сделать то же самое.
Я до сих пор пишу очень сложные сценарии на bash. Причина? В основном потому, что я привык к этому, а bash присутствует во всех системах (просто убедитесь, что вы не делаете #! / Bin / sh, потому что в некоторых системах может быть тире ...).
Другая причина - очень тесная интеграция с системными командами.
Хорошая причина, по которой я хочу начать привыкать к perl или python, заключается в том, что в bash нет исключений. Он продолжает выполнение сценария, если вы забыли зафиксировать ошибку. И даже выполнение «command || exit» не сработает, потому что оно не работает в каналах.
Лично я использую как сценарии оболочки, так и сценарии Perl. Когда мне в основном нужно иметь дело с системными командами, мне легче написать сценарий оболочки.
В других случаях, когда мне нужно использовать какую-то библиотеку, эквивалент которой я не могу найти в оболочке или не знаю команду, которая может сделать это легко, я переключаюсь на Perl. Это тот случай, когда мне нужно подключиться к базе данных. Я использую модуль Perl DBI. Я говорю о Perl, но та же идея применима и к Python.
Хорошая идея - освоить и то, и другое. Иногда вам нужно это, а в других случаях - другое.