Я пишу сценарий bash для изменения строки
./FirstJavaProgram.class
к
FirstJavaProgram
Я придумал этот сценарий. Однако bash жалуется, что строка 4 - плохая замена.
#!/bin/sh
file=${1%%.class}
echo $file
file=${file/.//}
Как мне написать правильный синтаксис?
Вы также можете использовать "${file#*/}". Если ваша строка находится за пределами сценария, вам вообще не нужен сценарий, например echo "./FirstJavaProgram.class" | sed 's|^[.]/||'
@drdot: basename "$file" .class





file = "${file/.//}"Вы можете доказать это себе с помощьюfile = "./FirstJavaProgram.class"; echo "${file/.//}"(примечание: поскольку вы ничего не заменяете,"${file/./}"- предполагается, что закрывающий'/'). Также в bashfile = "${file:2}"сделает это.