shell Bash检查文件中是否有空格

pgky5nke  于 2023-02-16  发布在  Shell
关注(0)|答案(1)|浏览(196)

这下面的功能是不工作的是这文件有一些空格或制表符.

get_value()
{
 file="/u01/app/file.lst"
 if [ -f $file ];
 then
   echo "file.lst file exists, Checking values"
   if [ -s $file ];
   then
       while IFS= read -r value
      do
         variable=`echo $value`
      done < "$file"
        echo "Variable values is : $variable"
   else
      echo "file.lst file is empty,Default value for variable is 10"
      variable=10
      echo $variable
    fi
 else
   echo "file.lst file doesnot exists, ,Default value for variable is 10"
   variable=10
   echo $variable
 fi
}

请帮助如何检查文件内容与空格也

jtw3ybtb

jtw3ybtb1#

如果一个文件只有一行,那么就不需要while循环。

#!/usr/bin/env bash

get_value(){
  local variable file
  file="/u01/app/file.lst"

  if [[ ! ( -e $file && -f $file ) ]]; then
    variable=10
    printf '%s does not exists, Default value for variable is %d\n' "${file##*/}" "$variable"
    printf 'Variable value is: %d\n' "$variable"
    return
  fi

  IFS= read -r variable < "$file"

  if [[ -z $variable ]]; then
    variable=10
    printf '%s is empty, Default value for variable is %d\n' "${file##*/}" "$variable"
    printf 'Variable value is: %d\n' "$variable"
    return
  fi

  printf 'Variable value is: %s\n' "$variable"
}

get_value
  • 变量的默认值可以通过Shell参数扩展"${variable:-10}"来实现
  • if子句/语句可以通过大括号{ }替换为命令分组,如下所示:[[ ... ]] && { command-goes-and-other-things-here; }

相关问题