我创建 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 上运行