여러 줄의 bash 코드를 단말기에 붙여넣고 한 번에 실행하려면 어떻게 해야 하나요?
여러 줄의 bash 코드를 단말기에 붙여 넣어야 하는데, 붙여 넣을 때마다 각 행이 별도의 명령어로 실행됩니다.
퍼트해 보다\
복사하기 전에 각 줄의 끝에 있습니다.
예:
echo "Hello world" && \
script_b.sh
echo $?
종료 코드($?
)는 마지막 명령어뿐만 아니라 완전한 명령어시퀀스입니다
이 답변이 여기에 없는 것이 매우 놀랍습니다.저는 이 질문에 대한 해결책을 찾고 있었습니다.이것이 가장 쉬운 접근법이라고 생각합니다.또한 보다 유연하고 포기합니다.
웹 사이트/텍스트 에디터 등에서 여러 줄을 bash에 붙여넣고 싶다면 한 줄당 명령어인지 함수인지 스크립트 전체인지에 관계없이...간단하게 시작하다(
마지막으로 a로 끝납니다.)
다음 예시와 같이 를 입력합니다.
만약 나에게 다음과 같은 blob이 있다면
function hello {
echo Hello!
}
hello
bash를 사용하여 단말기에 붙여넣고 확인할 수 있는 방법은 다음과 같습니다.
처음에
(
텍스트를 붙여넣고 Enter(예쁘게 하려면)를 누릅니다.그렇지 않으면.
끝은 a로 끝납니다.
)
Enter 키를 누릅니다.
예:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
붙여넣은 텍스트는 자동으로 프리펜딩과 함께 계속됩니다.>
각 회선마다.한 줄당 명령어, 함수 및 스크립트 전체를 사용하여 여러 줄에서 테스트했습니다.이것이 다른 사람들이 시간을 절약하는 데 도움이 되길 바랍니다!
를 누르면C-x C-e
정의한 기본 에디터를 여는 명령어.bashrc
그 후 편집기의 모든 강력한 기능을 사용할 수 있습니다.저장 후 종료하면 회선이 입력을 기다립니다.
편집기를 정의하려면 Ex에 씁니다. EDITOR=emacs -nw
또는EDITOR=vi
의 내부에~/.bashrc
또 다른 가능성:
bash << EOF
echo "Hello"
echo "World"
EOF
백슬래시에 가세해, 행이 다음과 같이 끝나는 경우.|
또는&&
또는||
다음 줄에 이어집니다.
행 주위에 괄호를 추가합니다.예:
$ (
sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
sudo apt-get install -qq -y dokku herokuish sshcommand plugn
dokku ps:rebuildall # rebuilds all applications
)
텍스트 파일에 명령어가 길게 나열되지 않도록 복사 페이지 스니펫을 다음과 같이 보관합니다.
echo a;\
echo b;\
echo c
iTerm은 여러 줄의 명령어를 완벽하게 처리하며 여러 줄의 명령어를 하나의 명령어로 저장하여 사용할 수 있습니다.Cmd
+Shift
+;
이력을 탐색합니다.
iTerm을 효과적으로 사용하는 방법에 대한 추가 iTerm 힌트를 확인하십시오.
아무도 이런 말을 하지 않은 것이 놀랍지만, 편집기에 모든 명령어를 붙여넣고 한 번에 실행할 수 있습니다.
따라서 매우 긴 명령어(즉, llvm! 파일을 컴파일하는 것)로 인해 이전에 시도했던 명령어보다 훨씬 쉬워졌습니다.에디터의 명령어를 여러 줄에 걸쳐서 쓸어 담기 위해 항상 사용합니다.
cat | paste -sd " " - | xargs echo
이렇게 하면 단말기에 cat 표준 입력이 열리고 코드에 붙여넣은 후 ctrl-d로 후속 조치가 이루어집니다(이렇게 하면 EOF 문자가 추가되고 CAT 프로세스가 종료됩니다).붙여넣기는 cat 입력을 받아들여 모든 다중 행을 공백 문자로 표시합니다.그러면 명령어만 에코아웃됩니다.
명령어를 실행하려면 마지막에 sh를 추가합니다.
cat | paste -sd " " - | xargs echo | sh
또는 출력을 alias 명령으로 하고 .zshrc에 넣습니다.
alias mcmd='cat | paste -sd " " - | xargs echo'
실행하다
> mcmd | sh
cat을 열고 여러 줄 명령어를 붙여넣고 ctrl d를 사용하여 여러 줄을 한 줄 명령어로 실행합니다.
명령어 예시
> mcmd;
# now paste in your long command
> llvm-g++
main.mm
-o
buildApp
-w
-g
-std=c++14
-L/System/Library/Frameworks/
-framework
CoreServices
# now key press ctrl + d
헉! 출력
llvm-g++ main.mm -o buildApp -w -g -std=c++14 -L/System/Library/Frameworks/ -framework CoreServices
다음과 같이 시도해 보십시오.
echo $(
cmd1
cmd2
...
)
해라
out=$(cat)
그런 다음 행을 붙여넣고 Ctrl+D(EOF 문자 삽입)를 누릅니다.Ctrl+D까지의 모든 입력은 cat의 stdout으로 리다이렉트 됩니다.
있다vi
내 셸에 설정된 키 바인딩입니다.이 설정을 어떻게 했는지 즉석에서 기억나지 않습니다.는 편집 모드로 할 수 .v
and and and 。vim
종료중(종료중):wq
를 ( )에 합니다.bash
실행할 수 있습니다.
언급URL : https://stackoverflow.com/questions/6713056/how-do-i-paste-multi-line-bash-codes-into-terminal-and-run-it-all-at-once
'programing' 카테고리의 다른 글
명령어를 WPF 텍스트블록에 추가하려면 어떻게 해야 하나요? (0) | 2023.04.11 |
---|---|
각 GROUP BY 그룹에서 첫 번째 행을 선택하시겠습니까? (0) | 2023.04.11 |
여러 열에 걸쳐 중복되는 항목을 찾으려면 어떻게 해야 합니까? (0) | 2023.04.11 |
데이터베이스 다이어그램 지원 개체를 설치할 수 없습니다...유효한 소유자가 없습니다. (0) | 2023.04.11 |
지정된 값을 포함하는 열의 VBA 셀 수 (0) | 2023.04.11 |