Shell script, чтобы найти имя файла из его пути

Здравствуйте, я хочу, чтобы простая оболочка script находила имя файла из заданного пути файла. как

$path = "/var/www/html/test.php";

тогда я хочу получить значение "test" в некоторой переменной. Также присутствуют только .php файлы. Я использую оболочку bash. Спасибо

Ответ 1

Try:

path="/var/www/html/test.php"
name=$(basename "$path" ".php")
echo "$name"

Кавычки существуют только для предотвращения проблем, когда $path содержит пробелы.

Ответ 2

Используйте встроенную команду UNIX:

basename "/var/www/html/test.php"

Ответ 3

Используйте функцию basename(). Это удобно в функции UNIX

Ответ 4

string="/var/www/html/test.php"

oIFS="$IFS"; IFS='/' 
set -A str $string
IFS="$oIFS"

echo "strings count = ${#str[@]}"
len=${#str[@]}
pos=`expr $len - 1`
echo "file : ${str[$pos]}";

Вывод -

 strings count = 4
 file : test.php