我有一个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