Каково значение $ {0## …} синтаксис с переменной, фигурными скобками и символом хеша в ударе?

Я просто видел некоторый код в ударе, который я не вполне понял. Быть новичком колотит сценариста, я не уверен, что продолжается.

echo ${0##/*}
echo ${0}

Я действительно не вижу, различие в выводе в этих двух командах (печатает название сценария). Это # просто комментарий? И что с /*. Если это - комментарий, каким образом это не вмешивается в закрытие } фигурная скобка?

Кто-либо может дать мне некоторое понимание этого синтаксиса?

38
задан Paŭlo Ebermann 17 August 2011 в 22:16
поделиться

3 ответа

См. Раздел Удаление подстроки в расширенном направлении Bash-Scripting ‡:

 $ {String # подстрока}
 

Удаляет кратчайшее совпадение подстроки от передней части $ String .

 $ {String ## Подстрока}
 

Удаляет самый длинный матч из подстроки от передней части $ String .

Подстрока может включать в себя подстановочный знак * , соответствует всему. Выражение $ {0 ## / *} печатает значение $ 0 , если он не запускается с форвардной косый, в этом случае он ничего не печатает.

‡ Руководство по состоянию на 3/7/2019, по ошибке утверждает, что матч составляет $ подстроки , как будто Подстрока было название переменной. Это не: Подстрока - это просто шаблон.

52
ответ дан 27 November 2019 в 03:30
поделиться

Вам необходимо обернуть свой PHP-код в ?> и сохраните его как .php или или .php5 (зависит от вашего Apache настроек).

-121--2740930-

См. Раздел расширение параметров раздел Bash (1) .

0
ответ дан 27 November 2019 в 03:30
поделиться

совет по 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
24
ответ дан 27 November 2019 в 03:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: