0

我有一个必须保持不变的 ksh 脚本(它运行的一些程序坚持是 ksh)。我想获取输入参数“test.txt”并删除最后 4 个字符,或者查找并替换“.txt”。

在 bash 我会做

NewVar=${@/.txt/}

不过,这在 ksh 中不起作用。如何摆脱 ksh 中的 .txt?我试过了

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

但它没有在这个新创建的 shell 中使用 $@ 变量。

谢谢,

4

2 回答 2

4

为什么不使用basename

于 2009-05-27T18:39:25.473 回答
0

ksh 不会让你用 $@ 来做,但是如果你把它分配给一个临时变量,你可以在不产生另一个 proc 的情况下做到这一点

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