cat oncall.sh
#!/bin/bash
scriptpath=/path/to/scripts
cat ${scriptpath}/oncall.txt
ファイルを作成したら、実行しても害はありません
dos2unix oncall.sh
Windows の Ctrl-M 文字が、Unix スクリプトの処理を台無しにする方法を完全に混乱させるようなものではないことを確認してください。
それから
chmod 755 oncall.sh
スクリプトを実行可能にします。
で確認
ls -l oncall.sh
次のようなリストが表示されるはずです
-rwxr-xr-x 1 userName grpname 5263 Nov 21 14:44 oncall.sh
最後に、完全パスまたは相対パスを指定してスクリプトを呼び出します。
./oncall.sh
また
$PWD/oncall.sh
最初の行は「shebang」行と呼ばれ、スクリプトが呼び出されると、OS はファイルの最初の行を読み取り、スクリプト ファイルの残りの部分を解釈するために実行するプログラムを見つけます。
次のいずれかを最初の行「shebang」として使用する必要がある場合がありますが、bash が適切な推測です
#!/bin/ksh
#!/bin/sh
#!/bin/ash
#!/bin/dash
#!/bin/zsh
または、最悪の場合、シェルが非標準のディレクトリにある場合は、それを詳しく説明する必要があります。
#!/usr/bin/ksh
すべてのシェルは、トレースおよび次のような変数展開のデバッグ引数をサポートします
#!/bin/ksh -vx
または、特定の行だけをラップして、次のようにデバッグのオンとオフを切り替えることができます
set -vx
cat ${scriptpath}/oncall.txt
set +vx
とすれば
% と 0 の間の ~dp 特殊構文は、基本的に、変数 %0 を展開してドライブ文字とパスを表示するように指示します。これにより、バッチ ファイルを含む現在のディレクトリが得られます。
Unixにはドライブ文字がないため、これは/path/to/scripts
合理的な代替品であり、直接的な代替品になると思います。scriptpath=$PWD
問題は、UNIX PATH var に依存してスクリプトを見つけるか、相対パスを使用してcd /path/to/scripts
実行し、 PATH に値を追加せずにファイルを見つけることです。./oncall.sh
./
IHTH。