터미널에서 여러 명령을 결합하는 방법은 무엇입니까?


25

다음과 같은 명령이 있습니다.

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

현재로서는 하나씩 실행하고 있습니다.

이러한 명령을 한 줄에 결합하는 방법이 있습니까?


3
이 질문에 대해 조사한 적이 있습니까?
don.joey

그건 내 질문이 아니 었어 인터넷 검색의 반분 만에 답을 얻었을 것입니다. 따라서 나는 당신이 이미 무엇을 발견했는지 궁금합니다.
don.joey

내가 당신의 질문을 하향식으로 생각하게 만드는 것은 무엇입니까? 나는 당신의 분노를 무시할 것입니다. 부수적으로, "어느 쪽이 더 낫다 : 한 줄에 여러 명령을 사용 ;하거나 &&실행하는"문제 는 훨씬 나아지고, 더 많은 연구가 이루어졌으며, 많은 찬사를 받았을 것입니다.
don.joey

askubuntu.com/questions/334994/… 에서이 질문에 대한보다 일반적인 변형이 있습니다 . 이전 의견에서 언급 한 질문을 정확하게 처리합니다.
don.joey

기리 걱정하지 마십시오. 질문의 본질은 흥미 롭습니다. 나는 그것의 일반적인 변형을 만들기 위해 노력했다.
don.joey

답변:


33

예, 다음과 같이 세미콜론으로 구분하십시오.

dir; ls -l

대부분의 언어 / 쉘은 세미콜론을 사용하여 명령의 끝을 나타내며 왼쪽에서 오른쪽으로 평가하면서 새로 시작합니다.

또는 @RobieBasak이 권장하는대로; 대신 &&를 사용하십시오. 코딩 사고를 방지합니다.

dir && ls -l

23
&&대신 사용하는 것이 좋습니다 ;. 이렇게하면 이전 명령이 실패하지 않은 경우에만 후속 명령이 실행됩니다. 이것은 어색한 결과를 피합니다. 예를 들어, 존재하지 않거나 철자가 cd /somewhere_else; rm -Rf *틀린 경우 비참한 일을 할 수 /somewhere_else있습니다. cd /somewhere_else && rm -Rf *이로부터 당신을 보호합니다.
Robie Basak

2
'&&'솔루션은 너무 좋으 므로이 답변의 첫 번째 권장 사항이어야합니다. 답변을 수정하고 더 나은 답변을 먼저 홍보하십시오.
Kerem Baydoğan

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.