gpt4 book ai didi

c - 带有 C 预处理器指令的 Shell 脚本

转载 作者:行者123 更新时间:2023-12-04 15:35:33 24 4
gpt4 key购买 nike

我想在 shell 脚本中使用 C 预处理器指令。由于 C 预处理阶段不编译整个脚本。因此,应该可以使用 C 预处理器指令,因为它会被视为脚本的注释。在项目中维护单个副本并在宏下合并多个更改也会很有帮助。

这是我为说明而编写的示例代码:

#ifdef HELLO
foo="Hello"
#else
foo="World"
#endif
echo $foo

现在我将这个文件保存为 testScript.c 并用 gcc 编译

gcc -E testScript.c -o testScript.sh -DHELLO

现在我有了testScript.sh。如果我运行这个脚本,我得到的结果是

sh testScript.sh
Output: Hello

最佳答案

您提出的建议是可行的,但通常不会实现,因为 shell 本身提供了比 C 预处理器更加灵活和动态的功能。

您可以对环境变量执行操作:

case $HELLO in
'' ) foo="World" ;;
* ) foo="Hello" ;;
esac
echo "$foo" # Note quoting

甚至只是

echo "${HELLO+Hello}${HELLO-World}"

您可以指定默认值:

: ${HELLO=Hello}

如果未设置某些内容,您可以抛出错误:

: ${HELLO?Need a greeting}

总而言之,除非您在 C 语言确实需要您全神贯注的环境中工作,否则我的简单建议是学习使用 shell。

关于c - 带有 C 预处理器指令的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289570/

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