データベースファイルを一覧表示するプログラムがあります。
次のようにシェルから直接呼び出されます。
db filename
ファイル全体をリストするか、次のようなものをリストします。
db 'filename :: conditions'
選択した要素のみを一覧表示...
別の方法は、すべてのパラメータを含むファイルを使用して呼び出すことです。
db < parameterfile
内容は次のとおりです(上記の「」とまったく同じ)。
filename
::
conditions
今、そのようなファイルを実行可能にしたいと思います。だから電話をかけることができます./parameterfile
。
私はコメント記号ではない#!/usr/bin/env db
ので、shebangを使用することが失敗したと思います。#
エラーメッセージが表示されます
db - Line 1 near ""#.//r" - " - syntax error
shell returned 26
これを行うことができる1行のコードはありますか?
ベストアンサー1
awk を shebang ラッパーとして使用します。
#! /usr/bin/awk BEGIN{getline;cmd="db"}{print|cmd}END{exit(close(cmd))}
... "db" commands here ...
あなたのスクリプトいいえexecve(2)
直接実行する必要がありますが、シェル(または同様のコマンド)を介してのみfind -exec
実行可能にすることを含む、より多くのオプションがあります。いいえ前にshebangを追加し、コマンドが理解するすべての言語の有効なコマンドスクリプトのままにしてくださいdb
。それはすべて言語が何であるかによって異なります。たとえば、言語のコメント行が//
(C ++のように)で始まる場合は、次のようになります。
// 2>/dev/null; exec db "$0" "$@"
... "db" commands here ...