【发布时间】:2015-07-04 01:45:06
【问题描述】:
在我的大学里,从连接到互联网的打印机打印文档真的很慢。因此,我正在编写一个脚本,该脚本使用 SCP 将文件发送到远程计算机,通过 SSH 发送一系列命令以从远程计算机(与打印机有更好的连接)打印文档,然后删除远程上的文件电脑。
它就像一个魅力,但令人讨厌的部分是它两次提示输入密码,一次是通过 SCP 发送文件,一次是通过 SSH 发送命令。如何解决?我读到您可以使用身份文件?问题是多个用户会使用它,而且许多用户在 bash 编程方面的经验非常有限,因此脚本必须完成所有工作,包括创建文件。
用户主要使用 Mac,远程计算机使用 Red Hat。到目前为止的代码如下:
#!/bin/sh
FILENAME="$1"
PRINTER="$2"
# checks if second argument is set, else prompt for it
if [ -z ${PRINTER:+x} ]; then
printf "Printer: ";
read PRINTER;
fi
# prompt for username
printf "CID: "
read CID
scp $FILENAME $CID@adress:$FILENAME
ssh -t $CID@adress bash -c "'
lpr -P $PRINTER $FILENAME
rm $FILENAME
exit
'"
【问题讨论】:
-
if [ -z "$PRINTER" ]; then也可以。