До сих пор я знаю, что вам нужно создать функцию для передачи аргументов.Как создать функцию Bash, которая принимает файлы определенного типа в качестве аргументов?
Однако, как вы обозначаете тип аргумента?
Например, если вы хотите скомпилировать файл класса Java и затем запустить результирующий файл Java (без необходимости вводить имя файла дважды, чтобы различать расширения каждый раз), как вы позволяете функции знать, что имена принадлежат файлам разных типов?
Допустим, это наша функция:
compileAndRun()
{
javac $1
java $2 # basically, we want to make this take the same argument
# (because the names of the *.class and *.java files are the same)
}
Таким образом, вместо того, чтобы печатать:
compileAndRun test.class test.java
Мы хотим просто ввести это:
compileAndRun test
Любая помощь вместе с любыми посторонними информация, которую вы хотите бросить, будет высоко оценена.
Вы можете использовать команду 'file' в некотором роде, чтобы Unix сообщила вам, что такое тип (если он известен), но то, что вы, вероятно, хотите сделать, это просто добавить' .java' в '$ 1' и' .class' до '$ 2'. Это было бы намного проще, чем синтаксический анализ вывода из 'файла'. – Faelkle
Существует мало смысла указывать имя входного и выходного файлов, так как Java обеспечивает, чтобы оба имени файла совпадали с именем класса, определенного внутри (или я забыл об этом? Прошло некоторое время с тех пор, как я использовал Java). – chepner