awk 命令在 Ubuntu 桌面上找不到,但在 Centos 上运行良好

awk 命令在 Ubuntu 桌面上找不到,但在 Centos 上运行良好

我创建 test.sh 来读取包含内容的文件

item1:return1
item2:return2
...
item10:return10

test.sh内容

VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`

echo "${VAR2}";

运行测试

sh test.sh item1

返回

: not found test.sh: 
: not found test.sh: 

当我在 Centos 上运行相同程序时,返回

return1

awk 命令有什么问题?

答案1

awk 命令没有任何问题。您的问题是test.sh无法找到消息显示的内容。CentOS 可能将您的路径设置为 PATH 变量。

运行它sh ./test.sh item1(我假设 test.sh 在你当前的目录中)

编辑:我应该更好地关注脚本,:在 grep 中存在问题,这有效

VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";

但是,awk 默认不识别:分隔符,因此我不得不使用

item1: return1
item2: return2

我不知道如果没有这个改变它如何在服务器或 centos 上运行

相关内容