我想將腳本的「運行時間」分配給變量「realtime」。所以,我想如下:如何將流水線結果分配給Bash中的變量
realtime = `{ time (echo "mirror -Rv $LocalPath $LocalPath";echo "quit";)|lftp -u s1238262 FTPS://$RemoteHost ; } 2>&1 |grep "real"| awk '{print $2}'`
echo $realtime
但我得到了一個錯誤:
++ grep real
++ awk '{print $2}'
+ realtime = 0m2.403s
./test.sh: line 6: realtime: command not found
+ echo
我試圖
realtime = `{ time pwd; } 2>&1 |grep real|awk '{print $2}'`
它做的工作。但是ftp腳本沒有。誰能幫我?
除非在交互式會話中定義了名爲'realtime'的函數或別名,否則''realtime = ...'調用不起作用。 'bash'中的變量賦值要求在變量名和'='符號之間,或者在符號之後和值之前沒有空格(例如'realtime = something'好,'realtime = something'' ,'realtime = something'和'realtime = something'都不好)。 – twalberg
另外'grep foo | awk'{bar}''通常寫得更好'awk'/ foo/{bar}''。 – tripleee
非常感謝!但關於awk的重寫,我沒有明白。我把它寫成''realtime ='{time pwd; } 2>&1 | awk'/ grep「real」/ {print $ 2}''''。但它運行錯誤: '++ awk'/ grep「real」/ {print $ 2}'' '+ a =' – dmoney