加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash脚本:如何测试列表成员资格

发布时间:2020-12-16 01:45:35 所属栏目:安全 来源:网络整理
导读:(这是debian挤压amd64) 我需要测试文件是否是文件列表的成员. 这么久我的(测试)脚本是: set -xarray=$( ls )echo $arrayFILE=log.out# This line gives error!if $FILE in $arraythen echo "success!"else echo "bad!"fiexit 0 有任何想法吗? 感谢所有的回
(这是debian挤压amd64)

我需要测试文件是否是文件列表的成员.
这么久我的(测试)脚本是:

set -x
array=$( ls )
echo $array
FILE=log.out
# This line gives error!
if $FILE in $array
then   echo "success!"
else  echo "bad!"
fi
exit 0

有任何想法吗?

感谢所有的回复.澄清一下:给出的脚本只是一个例子,实际问题更复杂.在最终的解决方案中,它将在循环内完成,因此我需要测试的文件(名称)是否在变量中.

再次感谢.没有我的测试脚本工作,并读取:


in_list() {
       local search="$1"
       shift
       local list=("$@")
       for file in "${list[@]}" ; do
           [[ "$file" == "$search" ]] && return 0
       done
       return 1
    }
    #
    # set -x
    array=( * )  # Array of files in current dir
    # echo $array
    FILE="log.out"
    if in_list "$FILE" "${array[@]}" 
    then   echo "success!"
    else  echo "bad!"
    fi
    exit 0

解决方法

if ls | grep -q -x t1 ; then
  echo Success
else
  echo Failure                                                                                
fi

grep -x只匹配实线,所以ls |如果文件存在,grep -x仅返回一些内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读