LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 569|回复: 3

bash中,如何把$()处理为普通字符

[复制链接]
发表于 2011-7-9 10:12:37 | 显示全部楼层 |阅读模式
rt
shell中包下面的一个变量
passwd=hack_@(^$())

#!/bin/bash
auto_login_ssh () {
    expect -c "set timeout -1;
                spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};
                expect *assword:*;
                send -- $1\r;
                interact;";
}

passwd='hack_@(^$())'

auto_login_ssh $passwd user@host

运行提示can't read "()": no such variable
发表于 2011-7-9 11:25:22 | 显示全部楼层
是不是加个\转义:\(\)
或者加“”号:“()”
试试看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-7-9 23:54:51 | 显示全部楼层
Post by tlze;2144311
是不是加个\转义:\(\)
或者加“”号:“()”
试试看


谢谢,加转义就可以了
回复 支持 反对

使用道具 举报

发表于 2011-7-10 03:53:49 | 显示全部楼层
用單引號應該可以啊:
  1. p='$(a)'; echo $p
  2. $(a)
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表