my_zsh_script.sh
「シャバンライン」に塗ると同じ効果が得られるものを探していますが、持ち運べる、ように
$SHELL my_zsh_script.sh
IOW、これは有効な対応する項目を探しています。
#!$SHELL
または
#!/usr/bin/env $SHELL
(一部のシステムでは、私の値は$SHELL
バージョンであり、zsh
場合によっては#!/usr/bin/env zsh
解析された値とは異なります。)
my_zsh_script.sh
私は常にカスタムをソートし、実行したい各ホストに対して正しいShebangラインをハードコーディングできると思います。私はこれを避けることを願っています。
ベストアンサー1
#!/bin/sh
my_script(){
{ cat; cat <&3; }>"$0"
} <<SHEBANG 3<<\SCRIPT
#!${SHELL}
SHEBANG
#now all the rest of your script
#goes in here
SCRIPT
my_script
ほとんどのシェルはこの文書の内容全体を安全な一時ファイルに自動的に保存します。パイプを使用しないバッファは通常シェルスクリプトの書き込みに対応するのに十分な大きさですが、もちろんわかりません。
関数はシェルメモリに格納されたリテラル文字列です。上記の操作は一度だけ行う必要があり、その後、スクリプトを$SHELL
実行したときに出てくるすべての内容に基づいてスクリプトが解釈されます。