これは有効なshebangですか?

これは有効なshebangですか?

UNIXについて次の質問があります。

上行が消えたら、何が必要ですか?

#!\bin\awk -f
  to make it run as a command?

スクリプトが何であれ、chmodを使用して実行するには権限を付与する必要があると思います。

答え1

「#!」の最初の行は、実行されるプログラムのフルパス名になります。

Linuxのパス名にはディレクトリ間にスラッシュがあります。

つまり:

#!/bin/awk -f

または

#!/bin/bash

または

#!/usr/bin/perl

最初のスクリプトはrunscriptを使用しawk、2番目bashと3番目のスクリプトはperl

また、以下を使用してファイルを実行可能にする必要があります。

$ chmod +x myscript.sh

答え2

#!\bin\awk -f有効なshebangラインですが、便利なラインではありません。これは、ファイルが\bin\awk現在ディレクトリから呼び出されたプログラムによって解釈される必要があることを示します。したがって、質問に文字通り答えるには、このファイルをコマンドとして実行する2つの方法があります。

  • \bin\awkawkの一部のバージョンをコピーまたはリンクして、現在のディレクトリに呼び出されるファイルを作成します。さらに、スクリプトは実行可能でなければなりません。

    ln -s /bin/awk '\bin\awk'
    chmod +x /path/to/script
    /path/to/script
    
  • 明示的にawkを呼び出します。

    awk -f /path/to/script
    

ファイルの変更が許可されている場合は、shebang行を理解しやすく編集する必要があります。つまり、バックスラッシュをスラッシュに置き換えます。そしてファイルを実行可能にします(これは確かに予想される答えですが、これを行うだけでは正解ではありません)。

関連情報