【发布时间】:2026-01-03 08:35:02
【问题描述】:
我有一个 bash 脚本,它使用一个多行 sed 命令来更改文件。 从命令行,此行有效:
sed -e '1a\' -e '/DELIMITER="|" \' -e '/RESTRICT_ADD_CHANGE=1 \' -e '/FIELDS=UPDATE_MODE|PRIMARYKEYVALUE|PATRONFLAGS' -e '1 d' general_update_01 > general_update_01.mp
我对各种文件使用相同的 bash 脚本。所以我需要将发送应用程序中的所有 sed 命令作为单个参数传递给 bash 脚本。但是,当它从应用程序传入时,我只得到-e。
在 bash 脚本中,我尝试了多种方法来接收作为完整字符串的变量。这些都不存储变量。
sed_instructions=$(echo $6)
sed_instructions=$6
sed_instructions=$(eval "$6")
以及其他一些配置。
我的命令行会使用这样的变量:
sed $sed_instructions $filename > $filename.mp
【问题讨论】:
-
你没有展示你如何调用你的 bash 脚本。
-
“我需要将所有的 sed 命令 [...] 作为单个参数传递”——你为什么这么认为?
-
BashFAQ #50 相关:我正在尝试将命令放入变量中,但复杂情况总是失败!