2014-06-05 3 views
3

편집 가능한 기본값을 가진 사용자 입력을 Bash 3.x으로 요청하고 싶습니다. 그게 가능하니?bash의 변수를 -i 옵션없이 기본값으로 읽으십시오.

아래의 Bash 4에서 작동하지만 여기서는 -i 스위치가 구현되지 않습니다.

name="Alex" 
read -e -i "$name" -p "Please enter your name: " input 
name="${input:-$name}" 

답변

0

BASH < 4에서이 작업을 수행 할 수 있습니다 readinput 경우 var에 다음 비어 $name로 설정 한 후

name="Alex" 
read -p "Please enter your name: " input && [[ -z "$input" ]] && input="$name" 

이 기본적으로 확인한다.

+0

고맙지 만 인라인 편집 가능한 기본값까지 있습니다. 실생활의 예제에서, 기본값은'Alex'가 아니기 때문에 더 길고 복잡합니다. – noway

+0

기본값은 아무것도 될 수 있습니다. 방금 데모 목적으로 예제를 복사했습니다. – anubhava

+0

즉, 사용자는 -i 스위치가 제공하는 것처럼 기본값 인라인을 편집 할 수 있어야합니다. 기본값은'SomeLong456.674.234.657'이지만 사용자가'SomeLong456.674.234.658'를 입력하기를 원한다면 그는 처음부터 (또는 복사/붙여 넣기) 모두 입력해야 할 것입니다. Backspace '와'8 '을 누르면됩니다. – noway

0

아니 정확히하지만 당신이 뭔가 같이 할 수 있습니다 :

name="Alex" 
read -e -p "Please enter your name [$name]: " input 
name="${input:-$name}" 

사용자가 이름을 편집하지만 여전히 기본값으로 볼 수 없습니다. 정확히 네가 원하는게 아니야. 아마 그것에 대해 이미 생각한 것 같아요.

+0

고마워,하지만 인라인 편집 가능한 기본값에 달려있다. 실생활의 예제에서, 기본값은'Alex'가 아니기 때문에 더 길고 복잡합니다. – noway

+0

@ 이제 당신은 더 풍부한 언어를 사용할 필요가 있다고 생각합니다. 아마도 readline에 직접 액세스 할 것입니다. 어쩌면 펄이지만, 당신이 함께 일하는 플랫폼에 달려 있습니다. – akostadinov

관련 문제