我是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
答案 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"