2015-10-05 55 views
0

我想使用ls -lrt命令獲取目錄中的最新文件,並將其存儲在一個變量中,然後根據它運行其餘的代碼。運行ls -lrt並使用文件

這是我的代碼片段:

LATEST_FILE=`ls -rt $INPUT_LOCATION/somefile*.utf.gz | tail -1` 

**{I want to check if Latest file is valid. If Yes proceed further, if not exit}** 

python mycode.py $LATEST_FILE 

我嘗試這樣做:

if [$LATEST_FILE = ""] 
then 
    echo "FIle does not exists" 
    exit 0 
fi 

這工作得很好,如果該文件不存在。但是,如果該文件存在,那麼它會拋出此錯誤:

./script.sh[5]: [somefile123.utf.gz: not found [No such file or directory] 

請幫我這個。

+0

什麼殼您正在使用? –

回答

1

你缺少兩個空格和引號:

if [ "$LATEST_FILE" = "" ] 
+0

如果文件不存在,它會拋出']:[:expected expected'。 – v1shnu

+0

你是否在''$ LATEST_FILE'''附近加了引號? –

+0

@ViChU,你需要空格的原因:'['是**命令**,不僅僅是語法。像任何命令一樣,它必須用參數的空格分隔。 –