我的计算机上有一个名为test.py
的脚本。我到目前为止所做的运行程序的是python test.py
到终端。
在Unix操作系统上是否有一个命令,它不要求用户指定他/她用来运行脚本的程序,而是使用shebang行所指向的程序来运行脚本? / p>
例如,我正在寻找一个允许我在终端中键入some_command test.txt
的命令,如果test.txt
的第一行是#!/usr/bin/python
,则脚本会被解释为python脚本,但如果第一行是#!/path/to/javascript/interpreter
,则该脚本将被解释为javascript。
答案 0 :(得分:1)
这是终端的默认行为(或者只是执行一般文件)所有你需要做的就是使脚本可执行
chmod u+x test.txt
然后(假设text.txt
在您当前目录中)每次键入
./text.txt
它将查看sh-bang行并使用该程序运行text.txt
。
答案 1 :(得分:0)
如果你真的想复制内置功能,试试这个。
#!/bin/sh
x=$1
shift
p=$(sed -n 's/^#!//p;q' "$x" | grep .) && exec $p "$@"
exec "$x" "$@"
echo "$0: $x: No can do" >&2
也许叫它start
来提醒你同样有用的Windows命令。