gpt4 book ai didi

bash - 如何使用多个 shebang 解释器运行同一个文件?

转载 作者:行者123 更新时间:2023-12-01 21:55:44 24 4
gpt4 key购买 nike

假设我想在 bash 中运行一些命令,然后说,octave。有没有办法用两个不同的命令运行同一个文件?在下面的示例中,我希望第一部分由 bash 运行,第二部分由 octave 运行

#!/bin/bash
echo helloooo
#!/bin/octave
plot(1,2)
pause()

最佳答案

脚本的第一行可能只有一个 shebang。

不确定你想在这里做什么,但你可以使用脚本的名称在运行时切换脚本解释器

示例 myscript.sh

#!/usr/bin/env bash

case "${0##*.}" in
# Switch script's interpreter based on script's name trailing .extension
sh)
echo helloooo
;;
plot | octave | oct)
octave < <(
# Remove the Bash part of this script
# by deleting lines up to what look like an octave shebang,
# and send it to octave
sed '1,/^#!.*[/[:space:]]\+octave$/d' "$0"
)
;;
esac
exit # Bash stuffs ends here

# Octave stuffs starts here with fake octave shebang
#!/usr/bin/env octave
plot(1,2)
pause()

然后创建一个链接到您的脚本:

ln --symbolic --force myscript.sh myscript.oct

将其作为 Bash 脚本运行:

./myscript.sh 
helloooo

作为 Octave 脚本运行:

./myscript.oct
...

关于bash - 如何使用多个 shebang 解释器运行同一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57448918/

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