首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在ssh本地文件中录制cd

试图在ssh本地文件中录制cd
EN

Stack Overflow用户
提问于 2020-01-07 10:40:12
回答 1查看 150关注 0票数 0

我正在编写一个脚本,启动ssh会话,然后在远程服务器上执行屏幕截图,脚本如下所示。

代码语言:javascript
复制
numbah="$1"
. . . . 
# Taking the screenshot
ssh -x ${INPUT_USER}@nano-machine /bin/bash <<- EOF
  cd /tmp
  mkdir --parents -- temp_img && cd -- $_
  DISPLAY=:0 scrot "Screenshot-${numbah}_%d-%m-%Y.png"
  echo "first arg is $1 $1 $1"
EOF

代码块似乎产生了一个错误,导致scrot失败。

代码语言:javascript
复制
/bin/bash: line 2: cd: /bin/bash: Not a directory

但是如果我引用EOF的话,就不会有任何错误--除了变量不会扩展,这对这个脚本至关重要。

如何在保持变量完整/可扩展的同时消除错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-07 10:55:35

如何在保持变量完整/可扩展的同时消除错误?

禁用此特定变量的展开。记住引号。

代码语言:javascript
复制
ssh -x ${INPUT_USER}@nano-machine /bin/bash <<- EOF
  cd /tmp
  mkdir --parents -- temp_img && cd -- "\$_"
  DISPLAY=:0 scrot "Screenshot-${numbah}_%d-%m-%Y.png"
  echo "first arg is $1 $1 $1"
EOF

但我确实发现,对于复杂的脚本,将数据作为参数传递更容易,而且脚本根本不展开:

代码语言:javascript
复制
ssh -x ${INPUT_USER}@nano-machine /bin/bash -- "$numbah" <<-'EOF'
  cd /tmp
  mkdir --parents -- temp_img && cd -- "$_"
  DISPLAY=:0 scrot "Screenshot-${1}_%d-%m-%Y.png"
  echo "first arg is $1 $1 $1"
EOF
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59626775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档