Я пишу файл bash для копирования файлов из unix в Windows, и я передаю путь к файлам в качестве параметра в файл bash: - scp -r /$1/ user@hostname:/cygdrive/c/unix_file
когда я выполняю bash и не передаю никаких параметров, он копирует весь файл в «текущий каталог»
пример :-
roor @ hostname />./ bash.sh теперь он копирует весь файл в корень .... когда я проверяю код выхода, он равен (0) !!!!
Если вы хотите указать каталог по умолчанию, который будет действовать, если вы не укажете параметр:
scp -r "/${1:-default/directory}/" user@hostname:/cygdrive/c/unix_file
в котором вы бы заменили "default / directory" на то, что хотите.
Если вы не передаете аргумент, значение его параметра считается пустой строкой. Проверьте параметр для строки нулевой длины (с if
и [
или [[
) и потерпят неудачу, если он один. И не забудьте указать параметр в команде (scp ... /"$1"/ ...
).