如何在 ssh 命令中使用长输入参数正确转义 qsub 命令?

2024-05-01

我有一个复杂的 qsub 命令可以远程运行。

PROJECT_NAME_TEXT="TEST PROJECT"
PACK_ORGANIZATION="--source-organization \'MY, ORGANIZATION\'"
CONTACT_NAME="--contact-name \'Tom Riddle\'"
PROJECT_NAME_PACK="--project-name \"${PROJECT_NAME_TEXT}\""


INPUTARGS="${PACK_ORGANIZATION} ${CONTACT_NAME} ${PROJECT_NAME_PACK}"

ssh mycluster "qsub -v argv="$INPUTARGS" -l walltime=10:00:00 -l vmem=8GB -l nodes=1:ppn=4 /myscript_path/run.script" 

问题是远程集群无法识别 qsub 命令,它总是显示不正确的 qsub 命令,或者由于输入参数错误而始终在集群上排队。

一定是转义问题,我的问题是如何正确转义上面的命令?


尝试使用here-doc:您有引号冲突(嵌套双引号是错误):

#!/bin/bash

PROJECT_NAME_TEXT="TEST PROJECT"
PACK_ORGANIZATION="--source-organization \'MY, ORGANIZATION\'"
CONTACT_NAME="--contact-name \'Tom Riddle\'"
PROJECT_NAME_PACK="--project-name \"${PROJECT_NAME_TEXT}\""


INPUTARGS="${PACK_ORGANIZATION} ${CONTACT_NAME} ${PROJECT_NAME_PACK}"

ssh mycluster <<EOF
qsub -v argv="$INPUTARGS" -l walltime=10:00:00 -l vmem=8GB -l nodes=1:ppn=4 /myscript_path/run.script
EOF

如你看到的,此处文档对于带引号的输入确实很有帮助。

See man bash | less +/'Here Documents' http://www.gnu.org/software/bash/manual/bashref.html#Here-Documents

Edit

根据您的评论:


我使用了这种方法,但它给了我“不会分配伪终端,因为标准输入不是终端。”

您可以忽略此警告

ssh mycluster <<EOF 2>/dev/null

(尝试-t切换为ssh如果需要的话)


如果你有

-bash: line 2: EOF: command not found

我认为你有复制粘贴问题。尝试删除所有端线上的多余空格


而且这个方法似乎无法传递局部变量$INPUTARGS到远程集群

这似乎与你有关EOF问题。


$argv在远程集群上不返回任何内容

这意味着什么?$argv不是预定义变量bash。如果需要列出命令行参数,请使用预定义变量$@


最后一件事:确保您正在使用bash

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ssh 命令中使用长输入参数正确转义 qsub 命令? 的相关文章

  • 如何将 bash 脚本的整个输出保存到文件

    我正在尝试将 bash 脚本的整个输出保存到文件中 我目前在代码开头有一个参数 ip 地址 如下所示 bin bash USAGE Usage 0
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 在 OSX 和 GNU 中使用“find”删除带有数字的文件名

    我正在尝试搜索一个文件并删除名称中包含数字的类似文件 我的文件 txt from myfile 00 04 version txt myfile 00 txt find E iregex myfile 0 9 1 txt 删除 myfile
  • tar 和 zip 有什么区别? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 tar 和 zip 有什么区别 每个的用例是什么 tar其本身只是将文件捆绑在一起 结果称为tarball 尽管zip也应用压缩 通常你使用gzip随
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 使用 sed 删除非字母数字字符

    我正在尝试验证一些输入以删除一组字符 只允许使用字母数字字符加 句点 下划线 连字符 我测试了正则表达式 w here http gskinner com RegExr http gskinner com RegExr 它与我想要删除的内容
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 为什么总是./configure;制作;进行安装;作为 3 个单独的步骤?

    每次从源代码编译某些内容时 都会经历相同的 3 个步骤 configure make make install 我明白 将安装过程分为不同的步骤是有意义的 但我不明白 为什么这个星球上的每个编码员都必须一次又一次地编写相同的三个命令才能完成
  • 如何使用我在 github 中发布的 bash 脚本执行 chsh?

    我有一个要点 我总是用它来在新服务器上安装我需要的软件包 http gist github com 4372049 http gist github com 4372049 我需要做的就是通过 ssh 在新服务器中输入以下内容 bash c
  • 从 Amazon S3 存储桶下载文件的脚本

    尝试编写脚本以从 Amazon S3 存储桶下载文件 cURL 网站上的示例遇到问题 下面的脚本产生 我们计算的请求签名与您的签名不匹配 假如 检查您的密钥和签名方法 感谢任何帮助 bin sh file filename php buck
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 如何使用 UNIX shell 计算字母在文本文件中出现的次数?

    我有几个文本文件 我想计算每个字母在每个文件中出现的次数 具体来说 我想使用 UNIX shell 来执行此操作 形式为 cat file 做东西 有没有办法让 wc 命令来执行此操作 grep char o filename wc l
  • 使用带有curl 的内部字段分隔符

    当我做 ls IFS l 我得到了我期望的输出 当我做 curl IFShttp www google com 我不 我是否误解了内部字段分隔符 如何在不使用任何空格字符的情况下运行curl 命令 您需要将变量放在大括号内 否则 shell
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 使用 paramiko 运行 Sudo 命令

    我正在尝试执行sudo使用 python paramiko 在远程计算机上运行命令 我尝试了这段代码 import paramiko ssh paramiko SSHClient ssh set missing host key polic

随机推荐

  • 静态资源的 URI 中的上下文路径,我真的需要指定它吗?

    我有一个简单的网络应用程序 webapp static images a gif pages test html WEB INF pages test jsp 在test html中 有 img src static images a gi
  • 背景重复 x/y 在 Firefox/Safari 中不起作用

    我有下面的代码表明background repeat x y由于某些原因 它在 FireFox 上不起作用 它只是删除了这些样式 但并不是说它们是不正确的 它们没有在某处被覆盖 当我尝试将这些风格结合在一起时 background 它也将其
  • FORTRAN 写()

    在开始之前 我必须先声明一下 我是 FORTRAN 的新手 我正在维护 1978 年的一段遗留代码 它的目的是从文件中读取一些数据值 处理这些值 然后将处理后的值输出到另一个文本文件 给出以下 FORTRAN 代码 INTEGER NM S
  • 使用 FocusScope.of(context).unfocus() 重建小部件树

    我有这个例子 override Widget build BuildContext context return Scaffold body SafeArea child Padding padding const EdgeInsets a
  • 未找到列:1054 未知列 laravel

    所以我尝试用 laravel 制作一个表单 但除了新版本之外 他们删除了表单 但我可以让它运行 所以这里是 Route post register function user new User user gt u n Input get u
  • URL中的gs_upl是什么意思?

    在任何谷歌搜索 URL 中 gs upl 是什么意思 例如 那么 gs upl 1045l1663l0l3648l4l4l0l0l0l0l258l682l0 3 1l4l0 在这里意味着什么 从构建的脚本gs upl j 我找到 funct
  • jquery脉动文本

    我正在使用 jquery 来使文本脉动 一切都很好 但我无法理解某些事情 我只想脉动 x 次 然后停止 我正在使用以下代码来使类产生脉动 document ready function function pulsate pulsate an
  • 何时使用Statement而不是PreparedStatement?

    何时使用语句而不是准备好的语句 我想在没有参数的查询中使用语句 但为什么不使用准备好的语句 对于没有参数的查询 哪一个更快 我想在没有参数的查询中使用语句 但为什么不使用准备好的语句 那还差得远 PreparedStatements 用于返
  • aria2c - 有什么办法只保留失败下载的列表吗?

    我在用aria2c下载以文本文件形式组织的相当大的 url 列表 6000 基于此gist https gist github com jonbakerfish 0f7877c050b648169e0958ea2e2c6aca 我使用以下脚
  • 为什么 golang 堆配置文件中的“Total MB”小于顶部的“RES”?

    我有一个用 go 编写的服务 在运行时需要 6 7G 内存 RES 在顶部 所以我使用 pprof 工具试图找出问题所在 go tool pprof pdf http
  • 从 DOM 中删除一行后更新 jQuery Tablesorter 插件

    我目前有一些代码隐藏已删除的行 然后使用 remove 函数将其删除 然而 我很难让它保持 删除 状态 因为每次我刷新表排序分页器插件或我正在使用的过滤器插件插件时 删除的行会重新出现 因为它们当然被缓存了 目前的代码很简单 目前有小部件更
  • 使用 ls 和 grep 列出具有特定扩展名的文件

    我只想从当前目录获取文件 并且只输出 mp4 mp3 exe 文件 没有其他内容 所以我想我可以这样做 ls grep mp4 grep mp3 grep exe 但不会 因为第一个 grep 将仅输出 mp4 因此其他 2 个 grep
  • 如何更改詹金斯主目录位置?

    简单的问题 如何更改jenkins主目录位置 默认情况下它指向 var lib jenkins 而我希望它指向 mnt home jenkins 我已将 JENKINS HOME 更改为 mnt home jenkins 但这对我没有帮助
  • 防止 .Net MVC WS-Federation 站点中的 XmlHttpRequest 重定向响应

    我在 MVC 3 站点上使用 WS 联合 声明感知 身份验证 并且在身份验证失败时无法阻止某些发送 JSON 的 API 控制器返回重定向 我有一个名为 API 的区域 其中有几个仅返回 JSON 的控制器 这些控制器都继承自同一个基类 我
  • 使用 SVM 预测概率

    我编写了这段代码并想获得分类的概率 from sklearn import svm X 0 0 10 10 20 30 30 30 40 30 80 60 80 50 y 0 1 2 3 4 5 6 clf svm SVC clf prob
  • 在 SVG 中使用变换模拟枢轴旋转

    我在 SVG 中有一个矩形 需要从特定点绕轴旋转 我能想到的最好方法是变换到枢轴的 xy 旋转角度 然后再次变换 问题是第二个变换的 xy 我认为它会在某种程度上采用 cos 和 sin 只是不确定在哪里或为什么 会旋转 90度到 也许我以
  • 如何让我的网络爬虫通过C#登录到这个网站

    我有一个应用程序可以读取网站上的部分源代码 这一切都有效 但问题是该页面需要用户登录才能访问该源代码 我的程序需要一种方法来最初使用户登录到网站 完成后 我将能够访问和阅读源代码 需要登录的网站是 mmoinn com index do P
  • 如何将导入的命名空间提供给 CompileAssemblyFromSource

    我正在尝试将 VB 源文件加载到内存中 但是 VB 文件假定与其关联的项目具有在项目级别定义的一些全局 导入的命名空间 此 VB 功能允许单个文件在每个文件上省略 Imports 语句 在 C 中使用 Dim sourceCode As S
  • 在python 2.7中打印阿拉伯/波斯字母[重复]

    这个问题在这里已经有答案了 在下面的代码中 Python 似乎不支持阿拉伯字母 有任何想法吗 usr bin python coding utf 8 import nltk sentence tokens nltk word tokeniz
  • 如何在 ssh 命令中使用长输入参数正确转义 qsub 命令?

    我有一个复杂的 qsub 命令可以远程运行 PROJECT NAME TEXT TEST PROJECT PACK ORGANIZATION source organization MY ORGANIZATION CONTACT NAME