Я просто видел некоторый код в ударе, который я не вполне понял. Быть новичком колотит сценариста, я не уверен, что продолжается.
echo ${0##/*}
echo ${0}
Я действительно не вижу, различие в выводе в этих двух командах (печатает название сценария). Это #
просто комментарий? И что с /*
. Если это - комментарий, каким образом это не вмешивается в закрытие }
фигурная скобка?
Кто-либо может дать мне некоторое понимание этого синтаксиса?
См. Раздел Удаление подстроки в расширенном направлении Bash-Scripting ‡:
$ {String # подстрока}
Удаляет кратчайшее совпадение
подстроки
от передней части$ String
.$ {String ## Подстрока}
Удаляет самый длинный матч из подстроки
от передней части
$ String
.
Подстрока может включать в себя подстановочный знак *
, соответствует всему. Выражение $ {0 ## / *}
печатает значение $ 0
, если он не запускается с форвардной косый, в этом случае он ничего не печатает.
‡ Руководство по состоянию на 3/7/2019, по ошибке утверждает, что матч составляет $ подстроки
, как будто Подстрока
было название переменной. Это не: Подстрока
- это просто шаблон.
Вам необходимо обернуть свой PHP-код в PHP <Вы код здесь>?>
и сохраните его как .php
или или
.php5
(зависит от вашего Apache настроек).
См. Раздел расширение параметров
раздел Bash (1)
.
совет по Linux: Bash parameters and parameters expansionsions
${PARAMETER##WORD} Results in removal of the longest matching pattern from the beginning rather than the shortest.
for example
[ian@pinguino ~]$ x="a1 b1 c2 d2"
[ian@pinguino ~]$ echo ${x#*1}
b1 c2 d2
[ian@pinguino ~]$ echo ${x##*1}
c2 d2
[ian@pinguino ~]$ echo ${x%1*}
a1 b
[ian@pinguino ~]$ echo ${x%%1*}
a
[ian@pinguino ~]$ echo ${x/1/3}
a3 b1 c2 d2
[ian@pinguino ~]$ echo ${x//1/3}
a3 b3 c2 d2
[ian@pinguino ~]$ echo ${x//?1/z3}
z3 z3 c2 d2