![在 shell 脚本中更改 SSH 登录后的日期](https://linux22.com/image/49814/%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%9B%B4%E6%94%B9%20SSH%20%E7%99%BB%E5%BD%95%E5%90%8E%E7%9A%84%E6%97%A5%E6%9C%9F.png)
我必须在 SSH 登录计算机后更改日期,但我无法更改它。这是我写的脚本:
#!/bin/bash
ENVIRONMENT_LIST=environment_ip_list
USERNAME=root
declare ENVIRONMENT_ARRAY
mdate="$#"
readIp()
{
while read IP
do
ENVIRONMENT_ARRAY[$env_count]="$IP"
let env_count++
done < $ENVIRONMENT_LIST
}
change_date()
{
for ((i = 0; i < env_count; i++))
do
ssh -t -t -o StrictHostKeyChecking=no $USERNAME@${ENVIRONMENT_ARRAY[i]} "'date -s "$1 $2 $3 $4"'"
done
}
readIp
change_date
在终端中,我得到以下输出:
~/Desktop/changedate_script $ ./change.sh 04 SEP 2012 10:36:00
[email protected]'s password:
bash: date -s : command not found
Connection to 192.168.12.160 closed.
答案1
ssh 命令中引号过多。
使用以下一项:
ssh -t -t -o StrictHostKeyChecking=no $USERNAME@${ENVIRONMENT_ARRAY[i]} "date -s '$1 $2 $3 $4'"
还可以使用change_date函数调用将tsring更改为:
change_date $1 $2 $3 $4