2013-02-11 225 views
2

我想编写一个脚本,根据我的输入,它将更改为不同的目录。是这样的:将命令行参数传递给shell脚本不起作用

test.sh: 
#!/bin/bash 
ssh machine001 '(chdir ~/dev$1; pwd)' 

但正如我跑./test.sh 2它还是到~/dev。似乎我的论点被忽略了。我在这里做什么非常愚蠢的事情?

回答

5

Bash忽略单引号(')字符串内部的任何变量语法。你需要双引号(“)才能进行替换:

#!/bin/bash 
ssh machine001 "(chdir ~/dev$1; pwd)" 
+0

ahh错过了那个,谢谢你们! – user1861088 2013-02-11 19:17:02

2

该参数用单引号引起来,所以它不在本地扩展。改为使用双引号。

#!/bin/bash 

ssh machine001 "chdir ~/dev$1; pwd" 

没有必要为(...),因为你只运行对命令,然后退出。

相关问题