以下脚本产生意外的输出
#!/bin/bash
#
MY_DIRECTORY=.
OUTPUT_DIR="$MY_DIRECTORY""/build_test"
echo "MY_DIRECTORY is $MY_DIRECTORY"
echo "OUTPUT_DIR is $OUTPUT_DIR"
我期望以下内容:
MY_DIRECTORY is .
OUTPUT_DIR is ./build_test
但它实际上产生:
MY_DIRECTORY is .
/build_testis .
谁能告诉我我做错了什么?注意我在 Windows 10 下的 Cygwin 命令外壳中运行 GNU bash 版本 4.4.12(3)-release。
这是混合 Unix 和 Windows 行尾的问题。您在行尾有一个回车MY_DIRECTORY=
。回车导致第二个输出行的一部分被覆盖。我可以在我的 Cygwin 安装中复制您的输出。
如果您通过dos2unix
它运行脚本,它将按预期工作。
为防止此类事情再次发生,请将文本编辑器配置为使用 Unix 行结尾保存文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句