bash文件参数问题

我写bash文件将文件从Unix复制到Windows,我将文件的path作为parameter passing给bash文件: – scp -r /$1/ user@hostname:/cygdrive/c/unix_file

当我执行bash并且不传递任何参数时,它将复制“当前目录”中的所有文件

例如: –

roor @ hostname />./ bash.sh现在它复制根目录中的所有文件….当我testing退出代码它是相等的(0)!

如果你不传递参数,那么它的参数值被认为是一个空string。 testing零长度string的参数(使用if[[[ )),如果是一个,则失败。 不要忘记在命令中引用参数( scp ... /"$1"/ ... )。

如果你想指定一个默认的目录,如果你没有提供参数,这个目录是有效的:

 scp -r "/${1:-default/directory}/" user@hostname:/cygdrive/c/unix_file 

在其中你可以用你想要的任何东西来replace“default / directory”。