今天想到一個方法,將要執行的所有的命令寫到一個文檔中,使用一個腳本順序讀取並執行,腳本大體內容如下:
#!/bin/bash
run_Dir=$(cd $(dirname $0);pwd)
for i in `cat ${run_Dir}/run_order.txt`
do
$i
done
文檔中的命令如下:
/bin/cat /etc/crontab
/bin/cat /etc/rc.local
結果報出錯誤:
/bin/cat: No such file or directory
發現for取每行數據是以tab或空格鍵來截取的,並不是讀取真正的每一行,在循環開始和結束添加
SAVEIFS=$IFS
IFS=$'\n'
。。。
IFS=$SAVEIFS
再次運行結果發現還是報錯
/bin/cat /etc/crontab: No such file or directory
查找原因,認為程序應該是將內容當成文本處理了,並沒有作為命令來執行,修改$i =》 $($i),發現還是報錯:/bin/cat /etc/crontab: No such file or directory,
$()未起作用或者還是當成字符串處理,修改 $i => eval $i 程序正確運行