터미널에 한 번의 요청으로 파일을 사용하지 않고 여러 명령을 서로 실행하는 방법은 무엇입니까?


22

나는 (1) 유형이 지정된 명령으로 파일을 엔드 라인으로 구분하여 준비하고 (2) 파일을 실행 가능하게 만들고 (3) 파일 시스템 관리자 또는 터미널에서 실행할 수 있습니다.

그러나 이것은 반복 가능하지 않고 매번 다른 명령 집합에 대해 말도 안됩니다.

대신 하나의 요청으로 터미널에 해당 명령을 입력 할 수 있습니까?

터미널의 끝 줄 문자를 모르겠습니다. Ctrl, Shift 또는 Alt with Enter 키가 작동하지 않습니다.  


1
명령 행에서 명령은 세미콜론으로 구분 될 수 있습니다.
John1024

답변:


27

&&또는로 명령을 구분할 수 있습니다 ;.

  • && 이전 명령이 상태 0 (종료)으로 종료 된 경우에만 다음 명령을 실행합니다.

    command1 && command2 && command3
    
  • ; 이전 명령이 0이 아닌 상태로 종료 되더라도 모든 명령을 실행합니다.

    command1; command2; command3
    

원하는대로 이러한 구분 기호를 결합 할 수 있습니다.


6
대한 command1 && command2지령 1이 성공하면 Command2를에만 실행됩니다.
souravc


@souravc : 편집했습니다. 감사합니다. 무언가를 배웠습니다.
MrVaykadji

경우에 결합 sudo apt upgrade하고 sudo systemctl reboot, 당신은 두 번 'sudo를'을 추가해야하거나 두 번째 명령 sudo는을 '기억'할 것인가?
Koen

9

한 번의 요청으로 각 명령을 한 줄에 입력하려면 다음 방법을 사용할 수 있습니다.

  • (첫 번째 줄)을 사용하여 요청을 시작하고 if :; then(이것은 true이면 수행하십시오) Enter; 프롬프트가 지금 바뀌고 >아무 것도 실행되지 않습니다.

  • 각각의 명령을 입력 한 다음 Enter

  • fi(위 if조건의 끝) 를 사용하여 요청을 완료하고을 누릅니다 Enter. 이제 모든 명령이 주어진 순서대로 실행됩니다.

예:

radu@Radu: ~ $ if :; then
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $

if true; then원하는 경우 더 명확하게 읽을 수 있습니다. 언뜻보기에 :혼란 스러울 수 있습니다 ;.
kiri

4

먼저, {자신의 라인에 넣습니다 .
그런 다음 명령을 삽입하십시오.
그런 다음 }줄을 바꾸고를 누릅니다 Enter. 명령이 실행됩니다.

예:

{
echo list
echo of
echo commands
echo to run at once
}

인쇄됩니다 (한 번에 프롬프트없이 중간에).

list
of
commands
to run at once

참고로 { .. }Bash 명령 그룹화 구문이 있습니다. 종종 &&또는 ||( 'and'및 'or') 와 함께 유용합니다.


if :; then이미 언급 한 것과 동일 합니까? 아니면 약간 다른가요?
MrVaykadji

1
@MrVaykadji 같은 결과이지만 다른 방법입니다. if :null 명령에 대해 테스트를 실행하며 항상 true를 반환합니다. { .. }명령을 그룹화하기 만하면됩니다. 나는 개인적 { .. }으로 기억하기가 더 쉽다.
kiri
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.