会一门脚本语言,学 bash 就显得浪费时间?
首先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和命令行都设计拙劣。但现状如此,你不学就寸步难行。

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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