#!/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