Erhalten Sie eine Eingabe in das Shell-Skript

  • Um eine Eingabe mit einem Shell-Skript zu erhalten, können Sie

     echo "text"
    read $VAR
     

    oder um es zur Laufzeit zu erhalten

     #! /bin/sh
    
    if [ "$1" ]
    then
      #do stuff
    else
      echo "No input"
    fi
     

    Aber was ist, wenn ich die gesamte Zeichenfolge nach dem Ausführen erhalten möchte , einschließlich Leerzeichen? Ich könnte Anführungszeichen verwenden, aber gibt es einen Weg, um dies zu tun, so kann ich Folgendes tun: ./script.sh This is a sentence

    22 November 2011
    switz
2 answers
  • Verwenden Sie

     #!/bin/sh
    
    if [ $# -gt 0 ] ; then
        echo "$*"
    else
        echo "No input"
    fi
     

    Denken Sie jedoch zuerst darüber nach, was Sie tun, und übergeben Sie einfach ein Parameter in Anführungszeichen.

    22 November 2011
    Sorpigal
  •  ./script.sh "This is a sentence"
     

    Ein anderer Weg ist

     ./script.sh This\ is\ a\ sentence
     
    22 November 2011
    Sergei Nikulov