bash - 长路径触发错误 bash 输出,如果循环错误
问题描述
运行以下代码时出现错误。如果我从 $file1 grep 则脚本不起作用。如果我从 $file2 grep 则脚本正在运行。
$file1 和 $file2 都具有相同的权限和相同的内容。但是为什么我从 $file1 grep 时收到错误消息?这里有语法错误吗?
#./test.sh
./test.sh: line 23: $'true\r': command not found
$ cat /tmp/file.conf
random=true
abac
daccda
qwerty=
aewwrwr=false
脚本
file1="/app/some/directory/apache-tomcat-9.0.10/webapps/DESDv2.0/WEB-INF/classes/file.conf"
file2="/tmp/file.conf"
findfile=` grep "random" $file1 | awk -F = '{print $2}' `
if $findfile;then
echo "enabled";
else
echo "disabled";
fi
实际输出
$ ./test.sh
./test.sh: line 23: $'true\r': command not found
预期产出
$ ./test.sh
enabled
解决方案
我认为你的 file1 和 file2 是不同的。要检查它,只需键入:
cksum $file1 $file2
它们应该产生相同的长度和相同的校验和。如果不是,它们是不同的。
我进一步猜想你的两个文件有不同的行尾约定: file1 有 DOS 行尾(2 字节行尾, ie ),而 file2 有 Unix 行尾(单字节行尾, ie )。
当您在编辑器中打开它们时,它们可能看起来是相同的。事实上,行尾表示是不同的。Unix 对其他字符的处理方式相同,因此有了这个额外的字符,'true' 变成了 'true\r',它找不到名为 'true\r' 的命令。
推荐阅读
- c# - 允许将文本拖放到文本框中但用户不写入
- logstash - Grok 模式语法语法
- php - 硒。Xpath。按单词数组查找元素
- typescript - 量角器:错误:TypeError:browser.getProcessedConfig 不是函数
- sql - 可搜索、可过滤、可排序、可排序、可导出、服务器端的数据表
- paypal - 如何获取 Braintree 支付客户端令牌?
- javascript - 获取特定项目的特定索引
- ios - 深层链接未显示正确的故事板
- laravel - 谷歌应用引擎(GAE)错误:chown:无法访问'/app/public':没有这样的文件或目录
- appium - 如何在移动元素上写文本而不清除它