我有一個bash的功能如下:這是一個語法錯誤?
function folderSize{
du -hs | awk '{print $1}'
}
folderSize
當我運行它,我得到以下錯誤:
./size.sh: line 2: syntax error near unexpected token `du' ./size.sh:
line 2: ` du -hs | awk "{print $1}"'
任何一個能幫助我嗎?
我有一個bash的功能如下:這是一個語法錯誤?
function folderSize{
du -hs | awk '{print $1}'
}
folderSize
當我運行它,我得到以下錯誤:
./size.sh: line 2: syntax error near unexpected token `du' ./size.sh:
line 2: ` du -hs | awk "{print $1}"'
任何一個能幫助我嗎?
在{之前需要空格。
function folderSize {
du -hs | awk '{print $1}'
}
此外,調用該函數的方法就是folderSize
,沒有貨幣符號,沒有括號。
我已將其更改爲'function folderSize {du -hs | awk'{print $ 1}'}'仍然有相同的錯誤 – GeneralZero
貌似你還沒有空間。 'folderSize'之後和'{'之前需要一個空格。如果您要嘗試將其全部聲明爲一行,則在'}'之前還需要分號。 –
謝謝我不知道 – GeneralZero
我不確定您的變體的語法是否正確。我通常做的有點像這樣:
folderSize() {
du -hs | awk '{print $1}'
}
folderSize
fnName()是舊的Bourne shell語法,它工作正常。由於圓括號解析了分析,所以你也可以不用空格:'folderSize(){du -hs | awk'{print $ 1}'; }' –
@MarkReed不知道,謝謝你的信息。 –
function folderSize {
du -hs $1 | awk '{print $1}'
}
folderSize '.'
不知道爲什麼你引入了一個參數,或者你爲什麼要在調用中引用參數,但最好是以'du -hs「$ @」'來表示最好的一般性。 –
謝謝,是的。你對於論證的一般化是正確的。我只是想讓它工作:-)我添加了一個參數來測試當前目錄。 – johnshen64
一些問題。 1.您在調用函數時不需要$。 2.你需要一個du命令的參數3.當你調用一個bash函數時,你不會使用parens,只需要你爲arg所需的任何字符串。我的版本可以工作,您可以更仔細地檢查它。 – johnshen64
不應該du -hs在cwd上運行? – GeneralZero