Table des matières
回复内容:
Maison développement back-end Tutoriel Python 会一门脚本语言,学 bash 就显得浪费时间?

会一门脚本语言,学 bash 就显得浪费时间?

Jun 06, 2016 pm 04:22 PM
bash else if ruby

首先bash虽然有if_else,可以调系统命令。但是许多局限性比如不支持多线程,没有库。所以会py或者ruby再去学bash,这是没必要 的。

回复内容:

日常工作,很多工作都是很琐碎 很细节的,你想不到你会遇到什么具体的小任务。
这时,你总不能打开vim 写个python脚本。
很可能还没写完#! ,shell 可能已经搞定了任务了。

所以会shell,熟练掌握各种命令,会sed awk,给日常工作带来很大的效率提升。
相信每一个Linux下的讨饭吃的程序员都深有体会。

琐碎任务一次性的任务交给shell; 注定要扩展,代码量不小,要维护的任务交给python.
需要效率的工作交给C。从来就不冲突。 学习 bash,并不仅仅是学习 bash 本身的语法,而是要去学习一下各种命令行工具的使用方式……
说到底,一切都是为了提高生产效率啊! 有py shell和ruby shell等等一大堆东西 另外一个角度看, 是shell script 让你拥有system utility的能力, 所有已安装的程序都洗干净了排着队等你调戏。sed, awk, kill, cat, ps, mkdir, rm, rsync, ..... 数都数不过来的别人幸苦调教好的漂亮姑娘,而*nix与生俱来的特性(redirection, pipe ...)又让它们可以很好的协同工作(因此do one thing, well) 。

如果你的程序有很多custom logic, 需要面向复杂些的数据结构,shell 的笨拙就会比较明显,这个时候就去找sexy的Python吧。 用Linux,bash还是要懂的。但是bash的语法确实有点奇怪(通常都是把c的语法当做是标准语法,所以说一门语言语法奇怪,就是说这门语言跟c的语法规则相去甚远),所以要想写好用的script,最好是学一门基于c的比较现代的语言。我现在用的是Python,然后需要执行bash的命令,就调用os,基本上所以的bash命令都可以用os.system("")这种方式运行。迄今为止,我唯一发现不能用os.system运行的就是 cd. Python中可以用os.chdir("")来实现 bash 的 cd. 今天服务器异地迁徙,我的shell脚本成功运维了500台服务器,包括对对等拷贝虚拟机配置按IP修改,组件启停,日志备份,服务器运行状态监控。shell起码不需要python解释器,代码上又异常优雅,你觉得shell不舒服,还是受到传统命令式编程的框架桎梏。每次打开vim看到花花绿绿又十分简洁的shell都让人陶醉,谁他妈再让我写Java或者python 去搞运维我就跟谁急 如果你是写需要长期运营的脚本,强烈推荐用python(或ruby等其他),倒不是说这样会更快,更方便,而是可读和可维护会好些,类似的还有makefile等,bash、sed、awk和make中那些奇怪的语法和符号的学习维护成本真的不如python中多啰嗦几句,而且用python可以做到一招通杀大多数需求,不然你的脑子得在bash,sed,awk之间来回切换
但如果你的脚本可能只是运行个一次,或临时一条命令,用bash还是很方便的
所以,bash不用很精通,但要保证会到一定水平,日常的工作区分来做
然而你也不可避免会碰到阅读维护其他人代码的情况,所以还是大致要了解下,比如if的语法,至于if里面的-a -o -f之类的可以问度娘了 当然不是浪费时间了(不然你让我们这种会用shell的情何以堪...)

假设路上有一坨屎, 你是用铲子(shell)铲掉, 还是开个铲车(python)来搞?
当然, 也会有粪坑, 但是大部分情况下是路上横躺了一坨屎, 极有可能还是别人丢过来的.

而且shell也没那么恶心嘛. 真正的脚本呢. 在*nix服务器下调试程序,查看程序debug日志或者运行日志,如果不懂shell,蛋疼死你 bash和命令行都设计拙劣。但现状如此,你不学就寸步难行。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment écrire if en langage C pour juger plusieurs conditions Comment écrire if en langage C pour juger plusieurs conditions Mar 25, 2024 pm 03:24 PM

En langage C, l'instruction if est généralement utilisée pour exécuter un bloc de code spécifique basé sur une seule condition. Cependant, plusieurs conditions peuvent être combinées pour effectuer une détermination à l'aide d'opérateurs logiques tels que &&, || et !. Y compris l'utilisation d'un ET logique (&&) pour juger plusieurs conditions, l'utilisation d'un OU logique (||) pour juger au moins une condition, l'utilisation d'un NON logique (!) pour juger de la négation d'une seule condition, ainsi que l'imbrication d'instructions if et l'utilisation de parenthèses. pour clarifier la priorité.

Différentes façons d'exécuter des fichiers de script shell sous Windows Différentes façons d'exécuter des fichiers de script shell sous Windows Apr 13, 2023 am 11:58 AM

Sous-système Windows pour Linux La première option consiste à utiliser le sous-système Windows pour Linux ou WSL, qui est une couche de compatibilité permettant d'exécuter les exécutables binaires Linux de manière native sur les systèmes Windows. Il fonctionne pour la plupart des scénarios et vous permet d'exécuter des scripts shell sous Windows 11/10. WSL n'est pas automatiquement disponible, vous devez donc l'activer via les paramètres de développement de votre appareil Windows. Vous pouvez le faire en allant dans Paramètres > Mise à jour et sécurité > Pour les développeurs. Passez en mode développeur et confirmez l'invite en sélectionnant Oui. Ensuite, cherchez W

Comparaison des performances d'Ubuntu Bash : Ubuntu vs Win10 Anniversary Edition Comparaison des performances d'Ubuntu Bash : Ubuntu vs Win10 Anniversary Edition Jan 04, 2024 pm 09:36 PM

Au début de cette année, lorsque Microsoft et Canonical ont publié l'espace utilisateur Windows 10 Bash et Ubuntu, j'ai essayé de faire quelques tests de performances préliminaires sur Ubuntu sous Windows 10 par rapport à Ubuntu natif. Cette fois, j'ai publié davantage sur la comparaison de référence entre les natifs purs. Ubuntu et Windows 10. Le test du sous-système Linux pour Windows a terminé tous les tests et a été publié avec la mise à jour anniversaire de Windows 10. L'espace utilisateur Ubuntu par défaut est toujours Ubuntu14.04, mais il peut être mis à niveau vers 16.04. Ainsi, le test est d'abord testé le 14.04, et une fois terminé, le système sera mis à niveau vers la version 16.04.

Cinq techniques de script Bash modernes peu connues Cinq techniques de script Bash modernes peu connues Jun 26, 2023 pm 08:36 PM

Les programmeurs utilisent souvent le langage de commande Bash pour créer des scripts shell afin d'automatiser les tâches manuelles. Par exemple, ils créent des scripts Bash pour diverses configurations, opérations sur les fichiers, génération de résultats de build et diverses activités liées au DevOps. Presque tous les systèmes d'exploitation de type Unix ou basés sur Unix fournissent aux utilisateurs un interpréteur Bash préinstallé, nous pouvons donc utiliser Bash pour écrire des scripts d'automatisation plus portables. Comme nous le savons déjà, les scripts Bash font référence à l'écriture d'une série de commandes utilisant la syntaxe du langage de commande Bash, des commandes Bash intégrées et des programmes CLI de base du système d'exploitation tels que GNU Core Tools. Un script Bash standard et démodé exécute généralement certaines commandes et affiche du texte brut sur le terminal.

Programme Bash pour trouver A élevé à la puissance B ? Programme Bash pour trouver A élevé à la puissance B ? Aug 30, 2023 pm 09:01 PM

Nous verrons ici comment élever le nombre A à la puissance B à l'aide d'un script bash. La logique est simple. Nous devons utiliser l'opérateur "**" ou l'opérateur power pour ce faire. Voyons le programme suivant pour comprendre clairement ce concept. Exemple#!/bin/bash#GNUbashScripta=5b=6echo "$(($a**$b))" sortie 15625

Analyse approfondie des similitudes et des différences entre Golang et Ruby Analyse approfondie des similitudes et des différences entre Golang et Ruby Jun 01, 2024 pm 08:46 PM

La principale différence entre Go et Ruby est que Go est un langage compilé à typage statique qui prend en charge un parallélisme léger et une gestion efficace de la mémoire, et convient à l'écriture d'applications à haute concurrence ; Ruby est un langage interprété à typage dynamique qui prend en charge le véritable parallélisme mais la gestion de la mémoire. nécessite un contrôle manuel et convient à l’écriture d’applications Web flexibles.

Comment utiliser les instructions if imbriquées dans les procédures stockées MySQL Comment utiliser les instructions if imbriquées dans les procédures stockées MySQL May 26, 2023 pm 12:07 PM

1. Introduction à l'instruction if L'instruction if est une instruction de structure de branchement qui effectue différentes opérations en fonction des conditions. L'instruction if se compose généralement d'une expression conditionnelle et d'une ou plusieurs instructions. Si la valeur de l'expression conditionnelle est vraie, alors les instructions de l'instruction if sont exécutées, sinon le bloc d'instruction if est ignoré ; La syntaxe de l'instruction if est la suivante : if(condition)thenstatement;elsestation;endif; où condition est l'expression conditionnelle et instruction est l'instruction SQL qui doit être exécutée. 2. Introduction aux instructions if imbriquées Une instruction if imbriquée fait référence à l'imbrication d'un ou plusieurs blocs d'instructions if dans un bloc d'instructions if pour effectuer différentes opérations basées sur différentes conditions.

Pourquoi Python, Ruby et d'autres langages ont-ils rendu obsolète l'opérateur d'incrémentation ? Pourquoi Python, Ruby et d'autres langages ont-ils rendu obsolète l'opérateur d'incrémentation ? May 11, 2023 pm 04:37 PM

Beaucoup de gens peuvent remarquer un phénomène, c'est-à-dire que dans certains langages de programmation modernes (bien sûr, sans faire référence aux langages de programmation "récents"), les opérateurs d'incrémentation et de décrémentation ont été annulés. En d'autres termes, il n'existe pas d'expression telle que i++ ou j-- dans ces langages, mais seulement i+=1 ou j-=1. Cette réponse explorera le contexte et les raisons de ce phénomène du point de vue de la philosophie du design. À proprement parler, il peut être biaisé de dire "i++ est en train de disparaître", car il semble que seuls Python, Rust et Swift parmi les langages de programmation traditionnels ne prennent pas en charge les opérateurs d'incrémentation et de décrémentation. Quand je suis entré en contact avec Python pour la première fois, c'était aussi

See all articles