2
我想编写一个脚本,根据我的输入,它将更改为不同的目录。是这样的:将命令行参数传递给shell脚本不起作用
test.sh:
#!/bin/bash
ssh machine001 '(chdir ~/dev$1; pwd)'
但正如我跑./test.sh 2
它还是到~/dev
。似乎我的论点被忽略了。我在这里做什么非常愚蠢的事情?
我想编写一个脚本,根据我的输入,它将更改为不同的目录。是这样的:将命令行参数传递给shell脚本不起作用
test.sh:
#!/bin/bash
ssh machine001 '(chdir ~/dev$1; pwd)'
但正如我跑./test.sh 2
它还是到~/dev
。似乎我的论点被忽略了。我在这里做什么非常愚蠢的事情?
Bash忽略单引号(')字符串内部的任何变量语法。你需要双引号(“)才能进行替换:
#!/bin/bash
ssh machine001 "(chdir ~/dev$1; pwd)"
该参数用单引号引起来,所以它不在本地扩展。改为使用双引号。
#!/bin/bash
ssh machine001 "chdir ~/dev$1; pwd"
没有必要为(...)
,因为你只运行对命令,然后退出。
ahh错过了那个,谢谢你们! – user1861088 2013-02-11 19:17:02