shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Bash, Shell, PHP, Python, Perl, CGI
tomotom
Posts: 330
Joined: 2006-09-22 13:37

shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Post by tomotom »

Ich möchte innerhalb eines scriptes den Wert einer Varialen ändern. Die Variable soll nicht überschrieben werden, sondern als editierbarer Vorgabewert im Prompt zur Verfügung stehen. Mit read -p test bekomme ich einen Promt, kann aber keinen editierbaren Vorgabewert setzen.

So hatte ich mir das gewünscht

Code: Select all

a=/home/bla/test/ja/nein/2/3/4/eo/xy/jkls
read -p "Vorgabe ändern: " $a a1
Es geht aber nicht. Ich wüßte gerne wie ich so etwas mache.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11174
Joined: 2003-02-27 01:00
Location: Hamburg

Re: shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Post by Joe User »

Was Du vorhast, geht zumindest mit bash nicht.
tomotom
Posts: 330
Joined: 2006-09-22 13:37

Re: shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Post by tomotom »

Joe User wrote:Was Du vorhast, geht zumindest mit bash nicht.
:(

Wie würde es gehen?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11174
Joined: 2003-02-27 01:00
Location: Hamburg

Re: shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Post by Joe User »

Mit bash geht nur:

Code: Select all

a=42
read -p "Answer of life? [$a] " b
if [ "$a" == "$b" ]; then
  echo "Correct answer"
else
  echo "Incorrect answer"
fi
Mit anderen Shells habe ich mich nicht ausreichend bescäftigt.
Anonymous

Re: shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Post by Anonymous »

oder

Code: Select all

a=/home/bla/test/ja/nein/2/3/4/eo/xy/jkls
read -p "Vorgabe ändern?:  (default= $a)>>" a1
if [ "$a" = "" ];then
a=/home/bla/test/ja/nein/2/3/4/eo/xy/jkls
fi

datafreak
Posts: 24
Joined: 2005-11-21 19:43

Re: shellscript: Editierbarer Vorgabewert im Prompt - Wie?

Post by datafreak »

Man könnte ja auch folgendes machen:

Code: Select all

#!/bin/bash

test1="Hallo"
test2="du"
test3="da"

clear

echo "1: $test1"
echo "2: $test2"
echo "3: $test3"

read -p "Was willst du machen?:" TASTE

case $TASTE in
1)      echo $test1 ;;
2)      echo $test2 ;;
3)      echo $test3 ;;
*)      echo "Beende das Tool"; exit 0 ;;

esac

Also nur mal so als beispiel.