【发布时间】:2020-04-24 20:42:40
【问题描述】:
我正在编写一个启动ssh会话然后在远程服务器上执行截图的脚本,脚本如下。
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 失败。
/bin/bash: line 2: cd: /bin/bash: Not a directory
但如果我引用EOF,则根本不会出现错误——除了变量不会扩展,这对这个脚本至关重要。
如何在保持变量完整/可扩展的同时消除错误?
【问题讨论】:
-
你怎么能
cd到一个脚本?$_是脚本位置,它不是目录。你想在哪里cd? -
@KamilCuk 我正在使用这个method to combine
mkdirandcd... -
那么|那为什么不直接
mkdir -p temp_img; cd temp_img呢?好吧,你可以mkdir -p temp_img; cd "\$_",但实际上,我发现写它更冗长。 -
@kvantour 不,效果和在
EOF周围加引号一样。