0

私はそうしなければならないkshスクリプトを持っています(それが実行するプログラムのいくつかはkshであることを主張します)。入力引数「test.txt」を取得して最後の4文字を削除するか、「。txt」を見つけて何も置き換えないようにします。

バッシュで私はします

NewVar=${@/.txt/}

ただし、これはkshでは機能しません。kshの.txtを削除するにはどうすればよいですか?私は試した

bash -c 'NewVar=${@/.txt/}'

しかし、この新しく作成されたシェルでは$@変数は機能しませんでした。

ありがとう、

ダン

4

2 に答える 2

4

ベース名を使用してみませんか?

于 2009-05-27T18:39:25.473 に答える
0

kshでは$@を使用できませんが、一時変数に割り当てると、次のコマンドを使用して別のprocを生成せずに実行できます。

tmp=$@
newvar=${tmp%.txt}
于 2010-07-12T14:11:41.083 に答える