我编写了 bash 文件来将文件从 unix 复制到 windows,并且我将文件路径作为参数传递给 bash 文件:-
scp -r /$1/ user@hostname:/cygdrive/c/unix_file
当我执行 bash 并且不传递任何参数时,它会复制“当前目录”中的所有文件
例子 :-
roor@hostname/>./bash.sh 现在它复制根目录中的所有文件....当我测试退出代码时,它是相等的(0)!!!!
答案1
如果您不传递参数,则其参数值将被视为空字符串。测试参数是否为零长度字符串(使用if
and[
或[[
),如果为零长度字符串,则失败。并且不要忘记在命令中引用参数(scp ... /"$1"/ ...
)。
答案2
如果您想指定一个默认目录,则如果您不提供参数则该目录将生效:
scp -r "/${1:-default/directory}/" user@hostname:/cygdrive/c/unix_file
其中你可以用任何你喜欢的内容替换“default/directory”。