Der entsandte Code funktioniert gut unter KSH.
$ contract=c
$ fld1=c
$ if [[ $contract = "$fld1" ]];then
> read position?"Enter the position of Contract number in m-n format,m should be less than n " <
> fi
Enter the position of Contract number in m-n format,m should be less than n 1-2
$ echo $position
1-2
In Antwort auf Igel Kommentar, können Sie eine weniger verwirrend prompt wie, dass man verwenden:
read position?"Enter the position of Contract number in m-n format, (m should be less than n) : "
Beachten Sie, dass die read variable?prompt
Syntax ist ksh
spezifisch. Unter bash
verwenden Sie read -p prompt variable
. Ein tragbares Verfahren verwendbar auf den meisten Bourne-Syntax basiert Schalen wäre printf "%s" "$prompt" ; read variable
Betrachten wir die Werte von '$ contract' und' $ fld1' während der Ausführung mit 'gesetzt -x' zu überwachen. Da dies ein vollständig gültiger Code ist (zumindest in ksh93), ist die wahrscheinliche Erklärung, dass sie nicht * wirklich * gleich sind. –
(... Ich muss mich fragen, wer eine Frage upvotes, ohne den Problemraum gut genug zu verstehen, um zu wissen, ob das von ihm identifizierte Problem echt ist). –
Der obige Code funktioniert gut in meinem ksh. @CharlesDuffy, Vielen Dank für Ihre Kommentare zu [meine Antwort] (http://Stackoverflow.com/a/36731484/5832518). – Raju