긴 명령을 여러 줄로 나누기

긴 명령을 여러 줄로 나누기

다음 명령이 포함된 쉘 스크립트가 있습니다.

#!/bin/sh
sh ../jboss/bin/standalone.sh --server-config=standalone-full.xml -Djboss.node.name=node1 -b 0.0.0.0 -bmanagement 0.0.0.0

더 나은 이해와 관리를 위해 한 줄을 여러 줄로 분할하는 방법

#!/bin/sh
sh ../jboss/bin/standalone.sh 
  --server-config=standalone-full.xml
  -Djboss.node.name=node1
  -b 0.0.0.0
  -bmanagement 0.0.0.0

각 줄 끝에 백슬래시를 추가해 보았지만 작동하지 않습니다.

답변1

이를 연속이라고 하며 \각 줄의 마지막 문자를 제외한 마지막 문자로 사용됩니다.

#!/bin/sh
sh ../jboss/bin/standalone.sh         \
  --server-config=standalone-full.xml \
  -Djboss.node.name=node1             \
  -b 0.0.0.0                          \
  -bmanagement 0.0.0.0

(미적 목적을 위해 정렬되었지만 반드시 그런 것은 아닙니다).

이에 대한 자세한 내용은 다음을 참조하세요.쉘 구문: 줄 바꿈에 \를 올바르게 사용하는 방법은 무엇입니까?그리고 관련된 문제.

답변2

Paul_Pedant의 의견 아이디어에 따라 Bash/ksh/zsh에서 배열을 사용할 수 있습니다.

#!/bin/bash
args=(
  --server-config=standalone-full.xml
  -Djboss.node.name=node1
  -b 0.0.0.0
  -bmanagement 0.0.0.0
)
sh ../jboss/bin/standalone.sh "${args[@]}"

여기서 괄호는 배열 할당이 끝날 때 쉘이 알아야 하는 구문 단서를 제공합니다. 불행히도 이는 단일 명령뿐만 아니라 배열 할당에만 작동합니다.

../standalone.sh또한 jboss 스크립트에 실행 권한이 올바르게 설정되어 있고 스크립트에 hashbang이 있으면 명시적으로 미리 설정 하지 않고도 그렇게 실행할 수 있어야 합니다 .sh

관련 정보