Чтобы добавить конечную косую черту для каталогов, просто измените свой код, включив параметр -F
в _tree.sh
:
tree -F -L 2 --charset ascii -I "_tree.sh|LICENSE|README.md|node_modules|nbproject"
Программа tree
(например, версия 1.7. 0) по умолчанию не добавляет завершающие слэши. Как указывает @steeldriver, это может быть связано только с опцией -F
, включенной где-то в вашей системе, например в пределах ~ / .bashrc
или ~ / .bash_aliases
] определен как псевдоним, поэтому вы видите завершающие слэши при запуске tree
на терминале. Чтобы в ваших сценариях также были завершающие слэши, просто добавьте параметр -F
в команду tree
.
Из-за дополнительных кавычек вокруг 5-го элемента (регулярное выражение:[5]="'^[^#]*sshfs#'"
).
Команде grep будет передан аргумент в форме '^regex'
вместо ^regex
, который никогда не будет совпадать (regex
не может одновременно следовать одинарной кавычке и начать в начале строки, в то же время ).
Удалите их, а затем укажите расширение массива("${_gopts[@]}"
вместо${_gopts[@]}
):
declare -p _gopts
declare -a _gopts=([0]="--extended-regexp" [1]="--with-filename" [2]="--recursive" [3]="--include" [4]="fstab" [5]="^[^#]*sshfs#" [6]="/etc")
_results=$( grep "${_gopts[@]}" )
Вы также можете использовать одинарные кавычки вместо двойных в объявлении массива. :Двойные кавычки не нужны, так как ни один элемент не содержит переменных и других расширений.