목차
回复内容:
백엔드 개발 파이썬 튜토리얼 会一门脚本语言,学 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和命令行都设计拙劣。但现状如此,你不学就寸步难行。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

여러 조건을 판단하기 위해 C 언어로 작성하는 방법 여러 조건을 판단하기 위해 C 언어로 작성하는 방법 Mar 25, 2024 pm 03:24 PM

C 언어에서 if 문은 일반적으로 단일 조건에 따라 특정 코드 블록을 실행하는 데 사용됩니다. 그러나 여러 조건을 결합하여 &&, || 및 !와 같은 논리 연산자를 사용하여 결정을 내릴 수 있습니다. 여러 조건을 판단하기 위해 논리적 AND(&&)를 사용하고, 하나 이상의 조건을 판단하기 위해 논리적 OR(||)를 사용하고, 단일 조건의 부정을 판단하기 위해 논리적 NOT(!)을 사용하고, if 문을 중첩하고 괄호를 사용하는 것을 포함합니다. 우선순위를 명확히 하기 위해.

Windows에서 쉘 스크립트 파일을 실행하는 다양한 방법 Windows에서 쉘 스크립트 파일을 실행하는 다양한 방법 Apr 13, 2023 am 11:58 AM

Linux용 Windows 하위 시스템 첫 번째 옵션은 Windows 시스템에서 기본적으로 Linux 바이너리 실행 파일을 실행하기 위한 호환성 계층인 Linux용 Windows 하위 시스템 또는 WSL을 사용하는 것입니다. 대부분의 시나리오에서 작동하며 Windows 11/10에서 셸 스크립트를 실행할 수 있습니다. WSL은 자동으로 사용할 수 없으므로 Windows 장치의 개발자 설정을 통해 활성화해야 합니다. 설정 > 업데이트 및 보안 > 개발자용으로 이동하여 이 작업을 수행할 수 있습니다. 개발자 모드로 전환하고 예를 선택하여 메시지를 확인합니다. 다음으로 W를 찾아보세요

Ubuntu Bash 성능 비교: Ubuntu와 Win10 Anniversary Edition Ubuntu Bash 성능 비교: Ubuntu와 Win10 Anniversary Edition Jan 04, 2024 pm 09:36 PM

올해 초 Microsoft와 Canonical이 Windows 10 Bash 및 Ubuntu 사용자 공간을 출시했을 때 저는 기본 Ubuntu와 비교하여 Windows 10에서 Ubuntu에 대한 몇 가지 예비 성능 테스트를 시도했습니다. 우분투와 윈도우 10. Windows용 Linux 하위 시스템 테스트는 모든 테스트를 완료했으며 Windows 10 1주년 업데이트와 함께 출시되었습니다. 기본 Ubuntu 사용자 공간은 여전히 ​​Ubuntu14.04이지만 16.04로 업그레이드할 수 있습니다. 따라서 14.04에 1차 테스트를 진행하고, 완료 후 16.04로 시스템을 업그레이드할 예정입니다.

잘 알려지지 않은 최신 Bash 스크립팅 기술 5가지 잘 알려지지 않은 최신 Bash 스크립팅 기술 5가지 Jun 26, 2023 pm 08:36 PM

프로그래머는 Bash 명령 언어를 사용하여 수동 작업을 자동화하는 셸 스크립트를 만드는 경우가 많습니다. 예를 들어 다양한 구성, 파일 작업, 빌드 결과 생성 및 다양한 DevOps 관련 활동을 위한 Bash 스크립트를 생성합니다. 거의 모든 Unix 계열 또는 Unix 기반 운영 체제는 사용자에게 사전 설치된 Bash 해석기를 제공하므로 Bash를 사용하여 더 이식 가능한 자동화 스크립트를 작성할 수 있습니다. 우리가 이미 알고 있듯이 Bash 스크립팅은 Bash 명령 언어, 내장 Bash 명령 및 GNU Core Tools와 같은 핵심 운영 체제 CLI 프로그램의 구문을 사용하여 일련의 명령을 작성하는 것을 의미합니다. 표준 및 구식 Bash 스크립트는 일반적으로 일부 명령을 실행하고 터미널에 일반 텍스트를 표시합니다.

A의 B승을 찾는 Bash 프로그램이요? A의 B승을 찾는 Bash 프로그램이요? Aug 30, 2023 pm 09:01 PM

여기에서는 bash 스크립트를 사용하여 숫자 A를 B로 거듭제곱하는 방법을 살펴보겠습니다. 논리는 간단합니다. 이를 위해서는 "**" 연산자나 거듭제곱 연산자를 사용해야 합니다. 이 개념을 명확하게 이해하기 위해 다음 프로그램을 살펴보겠습니다. 예#!/bin/bash#GNUbashScripta=5b=6echo "$(($a**$b))" 출력 15625

Golang과 Ruby의 유사점과 차이점에 대한 심층 분석 Golang과 Ruby의 유사점과 차이점에 대한 심층 분석 Jun 01, 2024 pm 08:46 PM

Go와 Ruby의 주요 차이점은 Go는 경량 병렬성과 효율적인 메모리 관리를 지원하는 정적으로 유형이 지정된 컴파일 언어이며 동시성 애플리케이션을 작성하는 데 적합하다는 것입니다. Ruby는 진정한 병렬성을 지원하지만 메모리 관리를 지원하는 동적으로 유형이 지정된 해석 언어입니다. 수동 제어가 필요하며 유연한 웹 애플리케이션을 작성하는 데 적합합니다.

MySQL 저장 프로시저에서 중첩 문을 사용하는 방법 MySQL 저장 프로시저에서 중첩 문을 사용하는 방법 May 26, 2023 pm 12:07 PM

1. if 문 소개 if 문은 조건에 따라 다른 연산을 수행하는 분기 구조 문입니다. if 문은 일반적으로 조건식과 하나 이상의 문으로 구성됩니다. 조건식의 값이 true이면 if 문의 문이 실행되고, 그렇지 않으면 if 문 블록을 건너뜁니다. if 문의 구문은 다음과 같습니다. if(condition)thenstatement;elsestatement;endif; 여기서 조건은 조건식이고 명령문은 실행해야 하는 SQL 문입니다. 2. if 중첩 문 소개 if 중첩 문은 if 문 블록 내에 하나 이상의 if 문 블록을 중첩하여 다양한 조건에 따라 다양한 작업을 수행하는 것을 의미합니다.

Python, Ruby 및 기타 언어에서 증가 연산자를 더 이상 사용하지 않는 이유는 무엇입니까? Python, Ruby 및 기타 언어에서 증가 연산자를 더 이상 사용하지 않는 이유는 무엇입니까? May 11, 2023 pm 04:37 PM

많은 사람들이 현상을 발견했을 수 있습니다. 즉, 일부 현대 프로그래밍 언어(물론 "최근" 프로그래밍 언어를 말하는 것이 아님)에서 증가 및 감소 연산자가 취소되는 현상입니다. 즉, 이들 언어에는 i++ 또는 j--와 같은 표현은 없고, i+=1 또는 j-=1만 그런 표현이 있습니다. 이번 답변에서는 이러한 현상의 배경과 이유를 디자인 철학의 관점에서 살펴보겠습니다. 엄밀히 말하면 주류 프로그래밍 언어 중 Python, Rust, Swift만이 증가 및 감소 연산자를 지원하지 않는 것 같기 때문에 "i++가 사라지고 있다"고 말하는 것은 편파적일 수 있습니다. 제가 처음 Python을 접했을 때도 마찬가지였습니다.

See all articles