Bash - 管道awk导致变量

时间:2013-09-12 17:49:21

标签: bash shell awk

我是bash的新手,而且我花了好几个小时试图解决这个问题但是我被困住了。

我正在编写一个脚本,它将在pyLoad中完成下载后自动执行。我需要检查包名的第一个单词是否为“Public”。

在尝试调试时,到目前为止我已经得到了这个:

#!/bin/sh
PACKAGE="$1"
PATH="$2"

FIRST=$(echo $PACKAGE|awk '{print $1}')
echo "First word is: $FIRST"

通过sh download.sh "test package" ~/运行此操作

download.sh: 5: download.sh: awk: not found

无论“测试包”是否在引号中,我都得到相同的结果。

我的目标是达到这样的目的:

if [ $FIRST == "public"  ]
then
    # Move to public folder
else
    # Do nothing
fi

任何帮助将不胜感激。

操作系统:Ubuntu 12.04 x64

路径= /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

2 个答案:

答案 0 :(得分:2)

awk:未找到

因为您重新定义了PATH变量。尝试使用其他名称作为内部PATH变量。

答案 1 :(得分:0)

您可以选择其他选项:

[[ $PACKAGE =~ ^[[:space:]]*([^[:space:]]+) ]]
FIRST=${BASH_REMATCH[1]}
echo "First word is: $FIRST"

或者

FIRST=${PACKAGE%%[[:space:]]*}
echo "First word is: $FIRST"