2015-03-02 82 views
1

我正在編寫一個腳本,它將爲給定流程實例選擇最後創建的文件。在腳本中運行ls時,通配符不起作用

我在腳本中使用的命令是

CONSOLE_FILE=`ls -1 "$ABP_AJTUH_ROOT/console/*${INSTANCE}*" | tail -1` 

,但同時得到執行腳本,沒有被處理,

ls -1 '....../console/*ABP*' 

因爲單引號,*上面的命令變化作爲通配符並且它給出如下輸出:

ls -1 $ABP_AJTUH_ROOT/console/*${INSTANCE}* | tail -1 
+ ls -1 '/tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/*UHMF_RT_1085*' 
+ tail -1 
ls: /tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/*UHMF_RT_1085*: No such file or directory 
+ CONSOLE_FILE='' 

它正在命令行從命令刪除「,但同時使用上面的腳本

[email protected]!DEV:devtc1/Users/RB/AIMOS_CLEANUP_CANSUB> ls -l '/tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/*UHMF_RT_1085*' 
ls: /tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/*UHMF_RT_1085*: No such file or directory 
[email protected]!DEV:devtc1/Users/RB/AIMOS_CLEANUP_CANSUB> ls -l /tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/*UHMF_RT_1085* 
-rw-r--r-- 1 devtc1 aimsys 72622 Feb 17 20:55 /tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/ADJ1UHMINFUL_UHMF_RT_1085_console_20150217_205519.log 
-rw-r--r-- 1 devtc1 aimsys 177039 Feb 17 21:02 /tcusers1/dev/aimsys/devtc1/var/dev/projs/ajtuh/console/ADJ1UHMINFUL_UHMF_RT_1085_console_20150217_210203.log 
+0

你不需要路徑中的引號。 您可能需要在腳本中啓用調試,將這一行放在shebang下:** set -x ** – runlevel0 2015-03-02 13:02:59

回答

0

嘗試

CONSOLE_FILE=`eval ls -1 "$ABP_AJTUH_ROOT/console/*${INSTANCE}*" | tail -1` 

另外,如果你想最後創建的文件,使用ls -1tr

相關問題