![awk 命令在 Ubuntu 桌面上找不到,但在 Centos 上运行良好](https://linux22.com/image/1184097/awk%20%E5%91%BD%E4%BB%A4%E5%9C%A8%20Ubuntu%20%E6%A1%8C%E9%9D%A2%E4%B8%8A%E6%89%BE%E4%B8%8D%E5%88%B0%EF%BC%8C%E4%BD%86%E5%9C%A8%20Centos%20%E4%B8%8A%E8%BF%90%E8%A1%8C%E8%89%AF%E5%A5%BD.png)
我创建 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 上运行