如何检查文件是否为ascii文本文件-BASH脚本

如何检查文件是否为ascii文本文件-BASH脚本,bash,scripting,ascii,Bash,Scripting,Ascii,我有一个运行3个命令的Bash脚本。最后一个文件名为“junk1.txt”,我对此很担心。我想对if语句执行的检查做一个补充。如果“junk1.txt”是ASCII文本文件。我该怎么做呢 ./command1 > command1.txt while read l; do command2 > command2.txt while read m; do command3 junk.txt > junk1.txt

我有一个运行3个命令的Bash脚本。最后一个文件名为“junk1.txt”,我对此很担心。我想对if语句执行的检查做一个补充。如果“junk1.txt”是ASCII文本文件。我该怎么做呢

./command1 > command1.txt

while read l;

do
    command2 > command2.txt

    while read m;

        do

            command3 junk.txt > junk1.txt 2>/tmp/err
            if [ -s /tmp/err ] #I WANT TO ADD ANOTHER CONDITION HERE
            then
                echo "not cracked"
            else
                echo "cracked"
                exit
            fi
        done < command2.txt

done < command1.txt
/command1>command1.txt
读l时;
做
command2>command2.txt
读m时;
做
command3 junk.txt>junk1.txt 2>/tmp/err
如果[-s/tmp/err]#我想在这里添加另一个条件
然后
回声“未破裂”
其他的
回声“破裂”
出口
fi
完成
使用命令:


如果差异您可以使用
文件
来测试:

对于您的用例,将
if[-s/tmp/err]
行替换为:

if [ -s /tmp/err ] && [ "$(file junk1.txt)" = "junk1.txt: ASCII text" ]

你不能检查它是否是。您只能检查它是否可以。这是作者选择的。
if [ -s /tmp/err ] && [ "$(file junk1.txt)" = "junk1.txt: ASCII text" ]