我有兩件事,一個是一個函數,另一個是別名,他們不太正常工作。試圖獲得兩個bash函數與管道和可選的參數工作
第一個是拖尾日誌,但只顯示前3行,方法是找到要查找的日誌的重要部分,然後顯示接下來的兩行或您指定的很多行。
# tail -f $1 | grep $2 -A 2
function tinput() {
if [ "$3" != "" ]
then
$(tail -f $1 | grep $2 -A $3)
else
$(tail -f $1 | grep $2 -A 2)
fi
}
可以說,我用這樣的:
tinput /var/log/webapps/app.name.com.error.log,#<.*Error:
它象這樣的錯誤:
zsh: no such file or directory: .*Error:
我不知道,但也許這不是正確或監守我看到ARGS在做管道?
二是:
function loadmysqldump() {
$(pv $1 | mysql -u root $1)
}
它是使MySQL數據庫轉儲恢復狀態一點更明顯(爲什麼程序不使用財產以後證明它的工作,我不知道,即使是微調會不錯)但不像做-v
那樣討厭。
好的,所以我承認做了一個booboo,出於某種原因,我忘記了在終端的參數是由空格分隔的,而不是撇號,所以它工作;坦率地說,我只使用grep因爲我無法得到我真正想要的,從tail -f
每個單獨的輸出的前n行,沒有其他我試過。
不知道zsh的,但在bash,你不能使用別名..使用函數變量,而不是..見:https://unix.stackexchange.com/questions/30925/in-bash-何時寫腳本以及何時寫腳本功能/ 30964#30964 – Sundeep
好,夠公平的。 – Thermatix
您正在執行管道命令行的輸出'tail -f $ 1 | grep $ 2 -A 2'。爲什麼使用'$(...)'? – Jdamian