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


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.