Добавьте это в конфигурацию apache, и вы получите перенаправление всех веб-сайтов, которые не используют https, на ssl/tls
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
Это не чтение
, а эхо
.
Я написал
script.sh
и вызвал его, используяsh script.sh
.
В Debian и Ubuntu sh
— это тире
, в котором echo
оценивает обратную косую черту в стиле C в своих аргументах:
$ dash -c 'foo="foo\000bar"; echo "$foo"; printf "%s\n" "$foo"'
foo
foo\000bar
]\000
превращается в байт NUL, который, по-видимому, завершает строку, которую выводит echo
. Заключение переменной в кавычки здесь не помогает, так как это только изменяет обработку командной строки оболочки перед запуском самой команды, а здесь сам echo
обрабатывает обратную косую черту.
Это известная проблема переносимости, более подробно описанная здесь: Почему printf лучше, чем echo?
Например, echo
в Bash выполняет обратную косую черту, если задан аргумент -e
.
Первоначально вопрос был помечен как bash, поэтому, если вы хотите запустить скрипт с помощью Bash, запустите его с помощью bash script.sh
, а не sh script.sh.
.
Этого можно добиться гораздо более простым и надежным способом с помощью sed:
sed -i 's|\\|/|g' myfile
Дает:
cat myfile 51 Pipe-line/Closed3/00001011_-_Portfolio/UW/Old/NID50_Future_022814.xls
EDIT:
Следуя вашему комментарию, вот как я бы этого добился:
for i in $(cat test | awk '{print $2}')
do
mv $i `sed 's|\\|/|g' <<< $i`
done