bal*_*lki 17 bash shell-script env
我尝试了以下但它似乎不起作用:
$ cat script.sh
#!/bin/env -i /bin/sh
/bin/env
$ script.sh
/bin/env: invalid option -- ' '
Try `/bin/env --help' for more information.
Run Code Online (Sandbox Code Playgroud)
phe*_*mer 10
这不工作的原因是因为它认为-i /bin/sh作为一个参数env。通常这将是 2 个参数,-i并且/bin/sh. 这只是shebang的一个限制。没办法。
但是,您仍然可以执行此任务,只是方式不同。
如果您希望此任务由脚本本身执行,而不必执行诸如 之类的操作env -i script.sh,则可以让脚本本身重新执行。
#!/bin/sh
[ -z "$CLEANED" ] && exec /bin/env -i CLEANED=1 /bin/sh "$0" "$@"
Run Code Online (Sandbox Code Playgroud)
如果CLEANED未设置环境变量,这将导致脚本重新执行自身。然后在重新执行时,它设置变量以确保它不会进入循环。
| 归档时间: |
|
| 查看次数: |
5866 次 |
| 最近记录: |