2013-10-26 2 views
2

휴대용 개인 스크립트를 작성하는 방법을 배우려고합니다. 개인용 유틸리티를 bash에서 sh (대시)로 마이그레이션하기 시작했습니다. 내가 그것을 실행하면Dash -x가 잘못된 대체 오류로 인해 실패 함

#!/bin/sh 
echo hi 

: 오류 내가 예를 들어 $ dash -x script

디버깅 모드에서 스크립트를 실행하려고 할 때이 스크립트에, 모든 경우에 얻고 그러나이 $ dash script, I 내가로 실행 그러나 경우 '안녕하세요'문자열을 얻을 : $ dash -x script 아니면 에코 전에 set -x 명령을 추가하는 경우 :

#!/bin/sh 
set -x 
echo hi 

이 오류와 함께 실패합니다

script.sh: 3: script.sh: Bad substitution

내 스크립트를 디버그하는 것은 매우 어렵습니다. 내가 0.5.7-2ubuntu2

+0

[bash에서 문자열 대체 - 잘못된 대체 오류] 가능한 복제본 (http://stackoverflow.com/questions/8960677/string-replacement-in-bash-bad-substitution-error) – kenorb

답변

3

그냥 나는 내가 (xtrace 모드에서 사용되는) 개인 PS4를 사용 깨달았다 내 질문에 작성 완료 시간 대시 우분투 12.04을 실행하는거야 내 PS4이었다

>>(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): } 

일시적으로 PS4 = ">>"로 변경되어 모든 것이 정상적으로 변경되었으므로 대시로 스크립트를 디버그 할 수 있습니다. 희망이 사람을 도움이됩니다.

관련 문제