>> netstat -tunalp | grep :80
tcp6 0 0 :::80 :::* LISTEN 9480/httpd
Вы собирались прослушивать только соединения ipv6? (видите, что строка начинается с tcp6?) Если вы хотите, чтобы он только связывался с адресом ipv4, попробуйте использовать Listen 0.0.0.0:80
вместо этого.
Просто удалите внутренние двойные кавычки:
fpath="${HOME}/New Folder/foobar.txt"
Поскольку все содержимое переменной заключено в двойные кавычки, вам не нужно этого делать второй раз. Причина, по которой это работает из интерфейса командной строки, заключается в том, что Bash сначала оценивает кавычки. Он не работает в переменной, потому что кавычки с обратной косой чертой рассматриваются как буквальная часть пути к каталогу.
Кавычки не являются частью имени папки, не так ли?
Это должно сработать:
fpath="$HOME/New Folder/foobar.txt"
ls "$fpath"
Есть ли способ заставить ls отображать путь из моего скрипта?
Да, использовать:
ls $HOME/New\ Folder/foobar.txt
Проблема заключалась в том, что вы включая кавычки внутри значения переменной. Настоящее имя каталога не имеет кавычек "
.
Вам нужно создать переменную только с одним методом цитирования.
В переменных:
fpath=${HOME}/New\ Folder/foobar.txt
Или:
fpath="${HOME}/New Folder/foobar.txt"
Или даже:
fpath=${HOME}/'New Folder/foobar.txt'
Полный сценарий:
#!/bin/bash
fpath=${HOME}/New\ Folder/foobar.txt
echo "fpath=(${fpath})"
ls "${fpath}"