Announcement

Collapse
No announcement yet.

Kiểm tra kiểu dữ liệu trong LT Shell

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Shell script] Kiểm tra kiểu dữ liệu trong LT Shell

    Mình đang muốn kiểm tra kiểu dữ liệu của 1 biến nhập vào không phải là kiểu số thì phải làm sao mọi người. Ai rành chỉ với.

  • #2
    bạn có thể viết 1 hàm kiểm tra biến nhập vào bằng cách đổi biến nhập vào sang byte (Encoding.Ascii.GetBytes) rồi so sánh với bảng mã ascii xem biến được đổi có nằm trong khoảng số của mã ascii hay không, theo mình nghĩ cách này đơn giản
    :dreaming::sogood::go:h:

    Comment


    • #3
      Không phải C#. Lập trình Shell mà.Có dạng như thế này:

      clear
      read -p "a= " a
      read -p "b= " b
      echo "tong $a + $b: `expr $a + $b`"
      echo "hieu $a - $b: $[ $a - $b ]"
      tich=`expr $a \* $b`
      echo "tich $a * $b: $tich"
      thuong=$[ $a / $b ]
      echo "thuong $a / $b: $thuong"

      Comment


      • #4
        hì hỉu rùi, lúc nãy đọc cái đề không rõ, mấy cái này nó tương tự shell trong linux, chú kiếm mấy cao thủ bên linux hỏi thử
        :dreaming::sogood::go:h:

        Comment


        • #5
          Originally posted by 10520273 View Post
          Mình đang muốn kiểm tra kiểu dữ liệu của 1 biến nhập vào không phải là kiểu số thì phải làm sao mọi người. Ai rành chỉ với.
          Bashshell không có kiểu dữ liệu nha bạn.
          Be different and always different
          http://archlinuxvn.org/
          http://theslinux.org
          http://lab.infosec.xyz

          Comment


          • #6
            Vậy thì làm *** biết được một giá trị nhập vào từ bàn phím không phải là kiểu số.

            Comment


            • #7
              Originally posted by 10520273 View Post
              Vậy thì làm *** biết được một giá trị nhập vào từ bàn phím không phải là kiểu số.
              biết làm gì ? Nếu muốn số thì declare -i cho nó ( không có số thực). Và mặc định string có giá trị interger là 0. Nếu bạn học qua Python cũng sẽ thấy gần như không có kiểu dữ liệu nữa.
              Be different and always different
              http://archlinuxvn.org/
              http://theslinux.org
              http://lab.infosec.xyz

              Comment


              • #8
                Originally posted by 10520058 View Post
                biết làm gì ? Nếu muốn số thì declare -i cho nó ( không có số thực). Và mặc định string có giá trị interger là 0. Nếu bạn học qua Python cũng sẽ thấy gần như không có kiểu dữ liệu nữa.
                Bạn có thể giải thích rõ hơn đc k. Nếu được thì code ví dụ cho mình tham khảo với.

                Comment


                • #9
                  Originally posted by 10520273 View Post
                  Bạn có thể giải thích rõ hơn đc k. Nếu được thì code ví dụ cho mình tham khảo với.
                  a=c; b=d
                  echo $(($a+$b))
                  a=1 ; b=4
                  echo $(($a+$b))
                  Be different and always different
                  http://archlinuxvn.org/
                  http://theslinux.org
                  http://lab.infosec.xyz

                  Comment


                  • #10
                    Originally posted by 10520058 View Post
                    a=c; b=d
                    echo $(($a+$b))
                    a=1 ; b=4
                    echo $(($a+$b))
                    Trời đất. Vậy nếu a=" n" thì bắt lỗi như thế nào.

                    Comment


                    • #11
                      Originally posted by 10520273 View Post
                      Trời đất. Vậy nếu a=" n" thì bắt lỗi như thế nào.
                      PHP Code:
                      if [[ $a=[a-zA-Z] ]] ->> XXX 
                      Be different and always different
                      http://archlinuxvn.org/
                      http://theslinux.org
                      http://lab.infosec.xyz

                      Comment


                      • #12
                        Originally posted by 10520273 View Post
                        Mình đang muốn kiểm tra kiểu dữ liệu của 1 biến nhập vào không phải là kiểu số thì phải làm sao mọi người. Ai rành chỉ với.
                        Google nó rành lắm em. https://www.google.com.vn/search?q=s...ient=firefox-a

                        One approach is to use a regular expression, like so:

                        if ! [[ "$yournumber" =~ ^[0-9]+$ ]] ; then
                        exec >&2; echo "error: Not a number"; exit 1
                        fi

                        If the value is not necessarily an integer, consider amending the regex appropriately; for instance:

                        ^[0-9]+([.][0-9]+)?$

                        Comment

                        LHQC

                        Collapse
                        Working...
                        X