why empty line is not getting stored in variable

前端 未结 3 1254
借酒劲吻你
借酒劲吻你 2021-01-28 11:01

I am using below code

    #! /bin/bash
for host in $(cat ./server.txt)
do 
    echo \"$host\"

done

server.txt contains :

              


        
相关标签:
3条回答
  • 2021-01-28 11:36

    Alternative

    s=$(cat -E ./server.txt) 
    while [ ${#s} != 0 ]
     do
      echo ${s%%\$*}
      s=${s#*\$}
     done
    
    0 讨论(0)
  • 2021-01-28 11:46
    while read host; do echo "$host"; done < server.txt
    

    With the code you provided, the file as a single string is given as the 4th argument to the for command. The shell then splits the string using arbitrary whitespace as a delimiter (assuming you have not altered the IFS variable).

    0 讨论(0)
  • 2021-01-28 11:59

    empty lines are not there because they are considered whitespaces used to separate word values.

    use this:

    awk '{print $1}' server.txt

     server1.com
     server2.com
    
     server3.com
    
    
     server4.com
    
    0 讨论(0)
提交回复
热议问题