Unix Shell脚本变量声明-找不到命令

悠悠
nOption=' | awk '{total+=$1} END {print total/1024"kb"}' '
find . -type f -printf "%s %p/n"| sort -nr | head -n10 $nOption

我想创建一个脚本来在当前目录中找到最大的文件。这是我的脚本,如果我使用变量替代...,则会出现错误。

输出:./big.sh:第67行:+ =:找不到命令

但如果我不使用变量,它就可以工作:

find . -type f -printf "%s %p/n"| sort -nr | head -n10 | awk '{total+=$1} END {print total/1024"kb"}' 

输出就是我想要的:680.021kb

我的脚本有什么问题?

谢谢你

00

单引号字符串不能包含其他单引号,因此该awk命令将解释为Shell命令。将命令放在变量中是棘手的,通常,创建函数更容易,更安全且更具可读性:

nOption() {
    awk '{total+=$1} END {print total/1024"kb"}'
}
find . -type f -printf "%s %p/n"| sort -nr | head -n10 | nOption

对于这种特定的情况,如@chepner所指出的那样,问题在于您不能将命令分隔符(例如,|放在字符串中)然后作为管道的一部分执行(没有eval,这是邪恶的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本-UNIX-找不到命令

来自分类Dev

Bash脚本-Unix-找不到命令

来自分类Dev

Bourne Shell在脚本上找不到Unix命令

来自分类Dev

读取时显示“找不到命令”的Unix脚本

来自分类Dev

Unix:usermod:找不到命令

来自分类Dev

找不到Shell命令

来自分类Dev

在Shell脚本中找不到命令

来自分类Dev

Shell脚本:找不到命令错误

来自分类Dev

在shell脚本中找不到date命令

来自分类Dev

在Shell脚本中找不到命令

来自分类Dev

在Shell脚本中找不到命令

来自分类Dev

找不到Shell脚本Ruby命令

来自分类Dev

Shell脚本:pacmd:找不到命令

来自分类Dev

在shell / bash脚本中找不到命令

来自分类Dev

找不到在Shell脚本中运行的命令

来自分类Dev

从shell脚本中捕获“找不到命令”

来自分类Dev

Shell脚本错误:找不到命令

来自分类Dev

bash脚本:找不到命令

来自分类Dev

脚本失败,找不到命令

来自分类Dev

在命令给出“找不到命令”之前设置shell变量

来自分类Dev

UNIX Shell脚本if和grep命令

来自分类Dev

AIX 中的 Unix Shell 脚本(Sed 命令)

来自分类Dev

UNIX中找不到db2命令

来自分类Dev

找不到Cygwin Dos2Unix命令

来自分类Dev

Shell脚本显示“找不到命令”。忽略shebang吗?

来自分类Dev

在if循环的shell脚本中找不到mkdir命令

来自分类Dev

运行Shell脚本时找不到Mac Terminal Foreach命令

来自分类Dev

在Shell脚本中调用函数时找不到命令

来自分类Dev

运行Shell脚本时出现“找不到命令”错误