gpt4 book ai didi

linux - 在从文件读取的输入中执行命令替换

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:55 26 4
gpt4 key购买 nike

在shell脚本中如何让脚本读取输入文件字符串中的命令

示例 1(script1.sh):

a="google.analytics.account.id=`read a`"
echo $a

示例 2(script2.sh):

猫脚本2.sh

a=`head -1 input.txt`
echo $a

示例input.txt

google.analytics.account.id=`read a`

如果我运行 script1.shread 命令工作正常,但是当我运行 script2.sh 时, read 命令未执行,但作为输出的一部分打印。

所以我希望 script2.sh 具有与 script1.sh 相同的输出。

最佳答案

您的 input.txt 内容在这里作为脚本有效执行; 仅当您完全相信这些内容可以在您的机器上运行任意命令时才这样做。也就是说:

#!/usr/bin/env bash
# ^^^^- not /bin/sh; needed for $'' and $(<...) syntax.

# generate a random sigil that's unlikely to exist inside your script.txt
# maybe even sigil="EOF-$(uuidgen)" if you're guaranteed to have it.
sigil="EOF-025CAF93-9479-4EDE-97D9-483A3D5472F3"

# generate a shell script which includes your input file as a heredoc
script="cat <<$sigil"$'\n'"$(<input.txt)"$'\n'"$sigil"

# run that script
eval "$script"

关于linux - 在从文件读取的输入中执行命令替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47892176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com