【问题标题】:How to use a properties file that contains numbers properties in shell如何在 shell 中使用包含数字属性的属性文件
【发布时间】:2014-01-17 06:43:07
【问题描述】:

这是我在 StackOverflow 上的第一个问题。我很确定它已经得到了回答(我认为这是一个非常愚蠢的问题,因为我刚刚开始学习 Linux 脚本),但我还没有成功找到答案。

对不起。

这是我的问题:我尝试在 shell 中使用属性文件中给定的数字,但出现错误,因为该数字不是“按原样”获取的。

我有一个 prop.properties 文件:

sleepTimeBeforeLoop=10

和一个 test.sh 外壳:

#!/bin/sh
. prop.properties

echo "time="$sleepTimeBeforeLoop
sleep $sleepTimeBeforeLoop

当我启动 test.sh 时,我有以下 输出

time=10
sleep: invalid time interval `10\r'
Try `sleep --help' for more information.

我的理解是我的属性文件的来源是正确的,但是该属性被视为一个字符串,带有一些特殊字符来指示行尾,或者其他。

如何只取“10”值?

提前感谢您的回答。

【问题讨论】:

    标签: linux shell properties-file


    【解决方案1】:

    这是行尾问题/确保您的脚本文件由\n 终止(unix 方式) 例如。在 UNIX 文本编辑器中编写或使用能够以“unix 样式”保存的 Windows

    【讨论】:

    • 感谢您的回答。我在 Linux 服务器上工作(看起来是 Red Hat 发行版),我一直使用 Vi 来创建、编辑和保存我的两个文件(属性和 shell 文件)。应该没问题吧?我以前从未遇到过 Vi 问题。
    • 数字后面的\r 是行尾/您的编辑器正在使用\r\n 而bash 只需要\n
    • 有效!非常感谢您的回答,我从没想过会发生这样的事情。在您的帮助下,我记得我实际上并没有“创建”属性文件,而是复制了另一个我发现的以按照我想要的方式修改它。原始文件必须是在 DOS 上创建的……对于那些有同样问题的人,我只在我的属性文件上使用 dos2unix 命令,一切正常。再次感谢!
    猜你喜欢
    • 2017-07-15
    • 2018-12-07
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多