我有一个必须保持不变的 ksh 脚本(它运行的一些程序坚持是 ksh)。我想获取输入参数“test.txt”并删除最后 4 个字符,或者查找并替换“.txt”。
在 bash 我会做
NewVar=${@/.txt/}
不过,这在 ksh 中不起作用。如何摆脱 ksh 中的 .txt?我试过了
bash -c 'NewVar=${@/.txt/}'
但它没有在这个新创建的 shell 中使用 $@ 变量。
谢谢,
担
为什么不使用basename?
ksh 不会让你用 $@ 来做,但是如果你把它分配给一个临时变量,你可以在不产生另一个 proc 的情况下做到这一点
tmp=$@
newvar=${tmp%.txt}