내가 다른 프로그램에 변수를 전달하는 떠들썩한 파티 스크립트를 쓰는 사람으로 변수를 전달합니다배쉬 : 단일 매개 변수/쉘 인용 매개 변수
문제가./program $variable
, 그것은 변수 $에 절대적으로 필요하다 공백을 포함하고 있지 않은 경우 단일 매개 변수로 전달됩니다.
variable=Hello World
./program $variable
-> program receives two arguments: 'Hello' 'World'
는 모든 (잘, bash는 개발자들)에서 아무것도하지 않습니다 인용 :
variable=Hello World
./program "$variable"
-> program receives: 'Hello' 'World'
두 번이 미친 것들 (물론, bash는 개발자들을 수행) 않습니다 인용이 :
variable=Hello World
./program "'$variable'"
-> program receives: "'Hello" "World'"
쉬운 방법이 있나요? 젠장,이 일을하는 방법이 있니?
업데이트 : 좋아요, 문제는 bash로 보이지 않으므로 여기에 몇 가지 추가 정보가 있습니다. 인수를 전달하는 프로그램은 파이썬 스크립트입니다. 어떤 식 으로든 인수를 수정하지 않고도 얻을 수 있습니다.
print sys.argv
-> ['/usr/bin/program', "'Hello", "World'"]
어떻게 해결할 수 있습니까?
편집 : $ 변수를 선언하지 않기 때문에 아니, 난
variable="Hello World"
을 시도하지 않았습니다. 내 bash 함수 내에서 선언되지 않았으므로 수정할 수 없습니다.
편집 : 좋아요, 나는 그렇게 작동합니다.
local temp="$variable"
./program "$temp"
내가 그런 식으로가 아니라 다른 방식으로 작동하는 이유하지만 알고 싶습니다
.
문제가 "프로그램"에서와 같이 뭔가 이상한에 IFS 설정에 arround를 그것을 작동 할 수 있습니다; './program "$ variable"는 공백을 포함 할 수있는 하나의 인수를 전달하며, 프로그램은 무엇을하고 있는가? –
'variable = "Hello World"로 시도한 적이 있습니까? – Vijay
@sarathi : 아니요, 실제로 $ 변수를 선언하지 않았으므로 아닙니다. 나는 단지 그것을 전달한다. –