#!/bin/bash
echo "Enter the search string"
read str
for i in `ls -ltr | grep $str > filter123.txt ; awk '{ print $9 }' filter123.txt` ; do
if [ $i != "username_list.txt" || $i != "user_list.txt" ] ; then
else
rm $i
fi
done
我是unix shell scritping的初学者,我使用grep方法基于给定的字符串创建删除文件的上述文件。而我执行上面的脚本文件,它显示错误,如“./rm_file.txt:第10行:语法错误附近的意外令牌”其他“。请提供此脚本中的错误信息。Unix如果条件错误内循环
为什么你使用'grep'和'awk'和临时文件?只要做'ls -ltr | awk“/ $ str/{print \ $ 9}”'(如果str包含某些字符,将会失败,但grep $ str也会失败) –
使用'[[]]'(参见http://mywiki.wooledge。组织/ BashPitfalls#A.5B_.24foo_.3D_.22bar.22_.5D)。也不知道你为什么试着'如果!a || !b然后没有别的东西'而不是在逻辑上等价的'如果一个&& b然后什么''。 – BroSlow