如何检查文件是否为ascii文本文件-BASH脚本
我有一个运行3个命令的Bash脚本。最后一个文件名为“junk1.txt”,我对此很担心。我想对if语句执行的检查做一个补充。如果“junk1.txt”是ASCII文本文件。我该怎么做呢如何检查文件是否为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
./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" ]