Bash 之后如何使用sed shell命令在服务器上进行ssh
我试图在服务器上嘘嘘,然后执行sed命令。 不幸的是,我犯了一个奇怪的错误 如果我运行这个命令,它就会工作Bash 之后如何使用sed shell命令在服务器上进行ssh,bash,shell,ssh,sed,Bash,Shell,Ssh,Sed,我试图在服务器上嘘嘘,然后执行sed命令。 不幸的是,我犯了一个奇怪的错误 如果我运行这个命令,它就会工作 sed -f <(printf "s/${DOMAIN}\.%s/www.&.${FOO}/g\n" ${LANG_KEYS}) ${DB_PATH_TO}${DB_NAME}.sql > ${DB_PATH_TO}new-${DB_NAME}.sql 试试看: ssh ${TARGET_USER}@${TARGET_IP} -i ${TARGET
sed -f <(printf "s/${DOMAIN}\.%s/www.&.${FOO}/g\n" ${LANG_KEYS}) ${DB_PATH_TO}${DB_NAME}.sql > ${DB_PATH_TO}new-${DB_NAME}.sql
试试看:
ssh ${TARGET_USER}@${TARGET_IP} -i ${TARGET_PRIVATE_KEY} -p ${TARGET_PORT} '
sed -f <(printf "s/${DOMAIN}\.%s/www.&.${FOO}/g\n" ${LANG_KEYS}) ${DB_PATH_TO}${DB_NAME}.sql > ${DB_PATH_TO}new-${DB_NAME}.sql
'
ssh${TARGET\u USER}@${TARGET\u IP}-i${TARGET\u PRIVATE\u KEY}-p${TARGET\u PORT}
sed-f${DB_PATH_TO}new-${DB_NAME}.sql
'
您是否作为here文档的一部分运行该命令?如果您在ssh之后将其作为标准命令运行,那么变量将不会在远程服务器上扩展。如果这有帮助,我将在jenkins上运行它。不知道你说的“here doc”是什么意思。顺便说一句,这些变量确实有效。这不是问题所在。你的引号乱七八糟。第二行(${DOMAIN}
,${FOO}
,…)上的变量应该在本地或远程主机上展开吗?尝试使用单引号”
而不是双引号“
在第一行和第三行。遗憾的是这不起作用。我的意思是它解决了一个问题。但是现在它说/var/www/foobar/sed/test.txt>/var/www/foobar/sed/new-2.txt:没有这样的文件或控制器,这是另一个问题。复制命令sed…
并直接在服务器上运行/调试它。
bash: -c: line 1: unexpected EOF while looking for matching `)'
bash: -c: line 2: syntax error: unexpected end of file
No such file or directory
ssh ${TARGET_USER}@${TARGET_IP} -i ${TARGET_PRIVATE_KEY} -p ${TARGET_PORT} '
sed -f <(printf "s/${DOMAIN}\.%s/www.&.${FOO}/g\n" ${LANG_KEYS}) ${DB_PATH_TO}${DB_NAME}.sql > ${DB_PATH_TO}new-${DB_NAME}.sql
'