5

.sh ファイルを開くデフォルトのアプリケーションとして bash を作成して、Windows コマンド プロンプトでシェル スクリプトを実行しています。入力パラメーターなしで任意のスクリプトを実行できますが、入力パラメーターを含むスクリプトの場合、「デバイス PRN を初期化できません」というエラーが表示されます。パラメータがスクリプトに渡されていないことがわかります。Windowsコマンドラインからシェルスクリプトに引数を渡すにはどうすればよいですか?

これは私がコマンドプロンプトで行っていることです。

X:> OracleSPExec.sh プロシージャ データベース
手順=
輸出手続き
データベース=
データベースのエクスポート
4

3 に答える 3

11

シェルスクリプトはコマンド/ビルトインを使用しているようで、ファイルをデバイスに出力printするウィンドウと競合する可能性があります。print.exePRN

于 2013-04-26T15:27:01.660 に答える
1

以前は機能していたローカルで発明されたタグ付けスクリプトを実行しようとしていますが、新しいラップトップを使用していて、Windows 10 を実行しています。インストールした cygwin のバージョンのbashprintは、組み込みコマンド (外部コマンドとして と があります) であり、 にあるコマンド以外のコマンドはありprintenvません。printfprintSystem32

$ type print
print is hashed (/cygdrive/c/WINDOWS/system32/print)

$ type echo
echo is a shell builtin

回避策として、各スクリプトの先頭近くに次の行を追加しました。

alias print=echo

これにより、「デバイス PRN を初期化できません」という問題が解消されました。ある時点でこれがなぜ機能したのかを知ることはまだ良いでしょう.

于 2016-12-13T17:14:44.410 に答える
1

考えられる 2 つの問題:

  1. シバンがありません#!

スクリプトの先頭に次の行を追加する必要があります。

 #!/usr/bin/bash
  1. ファイルの先頭にある Unicode BOM

ファイルがBOM付きのUTF-8で書かれている場合、シバンを解釈できないことがあります。シバンの前にある見出し (隠れている?) 文字を削除します。

于 2015-11-06T10:59:40.057 に答える