linux - 变量引用在 shell 脚本中的 echo 命令中不起作用
问题描述
我在不同的行中创建了两个具有完全相同数据“a”、“b”、“c”、“d”、“e”的
文件 1. 来自 ms office 2019 的 testing_office.csv 文件。
2. testing_txt_editor.csv 使用 sublime text
以下是使用的shell脚本。
object_type=$1
for object in `cat ${object_type}`
do
echo "test before object reference" ${object}
echo ${object} "random text after the object reference"
done
我正在通过 zsh shell 运行代码以下是使用的命令和输出
argarvit >>% ./testing.zsh testing_office.csv
test before object reference a
a random text after the object reference
test before object reference
random text after the object reference
test before object reference b
random text after the object reference
test before object reference c
random text after the object reference
test before object reference d
random text after the object reference
test before object reference e
e random text after the object reference
argarvit >>% ./testing.zsh testing_txt_editor.csv
test before object reference a
a random text after the object reference
test before object reference b
b random text after the object reference
test before object reference c
c random text after the object reference
test before object reference d
d random text after the object reference
test before object reference e
e random text after the object reference
如果引用之后有一些文本,为什么这两个文件的行为会有所不同?问题可能与编码有关,但我如何找出确切的原因?我尝试在文本编辑器上打开 testing_office.csv 它看起来一样。我尝试在 MBP 和 AL2 上在两个终端上获得相同的结果。
解决方案
您正在使用cat 的无用用法,唉,我无法重现您的问题。所述文件之间可能存在核心差异。你可以od -c
对每个文件进行检查。
您可能想尝试while read
循环而不是反引号扩展:
while read object ; do
echo "test before object reference" ${object}
echo ${object} "random text after the object reference"
done <$1
推荐阅读
- apache-spark - Spark SQL .withColumn() 与列表达式
- r - 连接两个向量,同时保留 R 中的顺序
- python-2.7 - 如何在 Python 2.7 中生成签名
- ruby-on-rails-5 - 如何创建将更新选定记录的字段值的表单?
- javascript - 对事件使用 Javascript onclick 或 keydown
- ios - 有没有办法在 UIStackView 中嵌入 UIScrollView?
- python - 仅在问题存在时显示问题的评论
- node.js - 使用 Node 下载文本文件
- c# - 如何在 macOS 上编译和运行 C# 应用程序
- c# - 当每个任务都依赖于某些事件时的任务链