我正在尝试将参数传递给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" }'
我得到了正确的输出:
我在这里做错了什么?
答案 0 :(得分:1)
你说这对你有用,但相信我有问题。重写为:
awk -v i="$1" '$0 ~ i{print length(), $0 }' | sort -n