簡體   English   中英

用 bash/shell 在 echo 中顯示 2 個變量的瘋狂問題

[英]crazy issue to display 2 variables in echo with bash/shell

我對 shell/bash 腳本有一個愚蠢的問題。 我有一個定義了 2 個變量的配置文件......請參閱下面我的名為test.conf 的文件:

WEB_DIR="www"
TPL_DIR="tpl"

現在我有一個名為test.sh 的shell/bash 腳本,其中包含以下內容:

#!/bin/bash
source test.conf
echo $WEB_DIR
echo $TPL_DIR
echo -e "$WEB_DIR - $TPL_DIR"
exit 0

如您所見,這非常簡單,因為這種腳本應該返回:

www
tpl
www - tpl

但是,我不知道為什么,當我啟動這個腳本時,他返回:

www
tpl
- tpl

我們可以看到第一個變量$WEB_DIR丟失了,我不知道為什么,因為她被定義了。

你知道為什么嗎?

謝謝L。

test.conf有 DOS 行結尾,所以每個變量的值都以回車結束。 相比:

$ WEB_DIR=$'www\r'
$ TPL_DIR=$'tpl\r'
$ echo -e "$WEB_DIR - $TPL_DIR"
 - tpl

WEB_DIR末尾的WEB_DIR是通過將光標移動到行WEB_DIR來“顯示”的,這樣- tpl覆蓋了www

使用dos2unix刪除 DOS 行結尾,或使用文本編輯器使用 Unix 行結尾保存文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM