0
我剛剛完成編寫我的第一個工作bash腳本(yay) - 它將數據提供給OS X上的GeekTools,並顯示一個任務列表,每次更新時會定期顯示一個新的項目類別。Bash腳本之謎,我在這裏做了什麼?
我寫了函數getProject,在腳本中調用它作爲一次測試,然後寫了一行實際發送信息的行。這是奇怪的部分 - 當我拿出我嚴格作爲測試進行的函數調用時 - 腳本停止工作!任何人都可以告訴我爲什麼這是,我怎麼能解決它?
此外,由於這是我的第一個腳本,如果有人願意,我會很樂意提供更好的編碼方法的建議。謝謝!
更新:我刪除的行是「getProject」它被添加到測試函數,當我刪除它時,我得到了......沒有,沒有任何結果。
#!/bin/bash
function getProject
{
PATH=/usr/local/bin:$PATH
cd $TMPDIR
if [ ! $STRING ]; then
declare -ag STRING
declare -g STRLENGTH
STRING=($(task ssproject | sort -fbdiu | grep -iv project | grep -iv tasks))
STRLENGTH=$(task stats | awk '/Projects/ {print $2}')
STRLENGTH=$(($STRLENGTH-1));
fi
if [ ! -f ./projectcycle.txt ] || [ $(cat ./projectcycle.txt) -gt $STRLENGTH ] || [ $(cat ./projectcycle.txt) -lt 0 ]]; then
echo 0 > ./projectcycle.txt
fi
if [ ! $CYCLE ]; then
declare -g CYCLE
CYCLE=$(cat ./projectcycle.txt)
fi
if [[ $CYCLE -lt 0 || $CYCLE -gt $STRLENGTH ]]; then
CYCLE=0
fi
echo ${STRING[ $CYCLE ]}
CYCLE=$((CYCLE+1))
echo $CYCLE > ./projectcycle.txt
}
getProject # <-------REMOVING BROKE THE SCRIPT
task projectdisplay project:$(getProject) | grep -v task
你能更新你的問題,使其清楚你拿出什麼新的結果? – 2011-12-30 18:59:15
只是爲了確認,它是驅動整個過程的最後一個ilne,即'task projectdisplay project:$(getProject)| grep -v task'並且你期待函數通過嵌入的調用'... $(getProject)...'來工作? (這似乎對我來說)祝你好運。 – shellter 2012-01-01 05:18:15