shell命令不会在bash脚本中运行

时间:2013-12-01 20:15:22

标签: bash sorting awk grep

我正在尝试将参数传递给bash脚本:     “words.sh surf”

#!/bin/bash
#words.sh
#purpose:
#
#   to return a list of words 
#   sorted by the length of each word
# 
i=$1
cat ~/wordlist | grep $i | awk '{ print length(),$0 | "sort -n" }'

我收到了这条消息:

  

用法:grep [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZ] [-A num] [-B num] [-C [num]]。

     

awk:源代码行1的语法错误

     

背景是。

     

{print length(),>>> - / bin / bash<<< | “sort -n”}

     

awk:源代码行1的非法声明

如果我将语句作为命令运行:

cat ~/wordlist | grep surf | awk '{ print length(),$0 | "sort -n" }'

我得到了正确的输出:

  • ...
  • ...
  • 12 hypersurface
  • 12冲浪板
  • 12 underurface
  • 12令人不安
  • 13 subtersurface

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

你说这对你有用,但相信我有问题。重写为:

awk -v i="$1" '$0 ~ i{print length(), $0 }' | sort -n