Wordpress 如何在bash中转义变量以用作另一个脚本的内容
我正在使用wp cli创建WordPressWordpress 如何在bash中转义变量以用作另一个脚本的内容,wordpress,bash,wp-cli,Wordpress,Bash,Wp Cli,我正在使用wp cli创建WordPresswp config.php文件。 我正在使用选项--extra-php来附加一些php代码 if ! [ -f $ROOT_DIR/wp-config.php ]; then runuser $WEB_USER -s /bin/sh -c "\ wp config create \ --dbhost=\"${WORDPRESS_DB_HOST:-mysql}\" \ --dbname=\"${WORDPRESS_DB_NAME:-wordpre
wp config.php
文件。我正在使用选项
--extra-php
来附加一些php代码
if ! [ -f $ROOT_DIR/wp-config.php ]; then
runuser $WEB_USER -s /bin/sh -c "\
wp config create \
--dbhost=\"${WORDPRESS_DB_HOST:-mysql}\" \
--dbname=\"${WORDPRESS_DB_NAME:-wordpress}\" \
--dbuser=\"${WORDPRESS_DB_USER:-root}\" \
--dbpass=\"$WORDPRESS_DB_PASSWORD\" \
--skip-check \
--extra-php <<PHP
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
PHP"
fi
但是,$\u服务器
将被解释,并保留为空
if (strpos(['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
['HTTPS']='on';
我试着像这样逃避:\$\u服务器
,但我得到了:
if (strpos($_SERVER[HTTP_X_FORWARDED_PROTO], https) !== false)
$_SERVER[HTTPS]='on';
所以我失去了所有的单引号
还有别的办法吗?引用得一团糟。不能将此处文档嵌入到带引号的字符串中。您可能希望使用多个here docs,并在希望禁止变量扩展的位置使用:
if ! [ -f "$ROOT_DIR"/wp-config.php ]; then
# a 'quoted' here-doc
extraphp=$(cat <<'PHP'
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
PHP
)
# an unquoted here-doc
wp_command=$(cat <<WP_CONFIG
wp config create \
--dbhost="${WORDPRESS_DB_HOST:-mysql}" \
--dbname="${WORDPRESS_DB_NAME:-wordpress}" \
--dbuser="${WORDPRESS_DB_USER:-root}" \
--dbpass="$WORDPRESS_DB_PASSWORD" \
--skip-check \
--extra-php "$extraphp"
WP_CONFIG
)
runuser "$WEB_USER" -s /bin/sh -c "$wp_config"
fi
if![-f“$ROOT_DIR”/wp-config.php];然后
#这里有一个“引用”的文档
extraphp=$(cat引用混乱。不能将here文档嵌入到引用字符串中。您可能需要使用多个here文档,并使用where来禁止变量扩展:
if ! [ -f "$ROOT_DIR"/wp-config.php ]; then
# a 'quoted' here-doc
extraphp=$(cat <<'PHP'
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
PHP
)
# an unquoted here-doc
wp_command=$(cat <<WP_CONFIG
wp config create \
--dbhost="${WORDPRESS_DB_HOST:-mysql}" \
--dbname="${WORDPRESS_DB_NAME:-wordpress}" \
--dbuser="${WORDPRESS_DB_USER:-root}" \
--dbpass="$WORDPRESS_DB_PASSWORD" \
--skip-check \
--extra-php "$extraphp"
WP_CONFIG
)
runuser "$WEB_USER" -s /bin/sh -c "$wp_config"
fi
if![-f“$ROOT\u DIR”/wp-config.php];然后
#这里有一个“引用”的文档
extraphp=$(cat)