Если вы хотите добавить (содержимое) xyz.sh
в вау .sh
, самый простой способ:
cat xyz.sh >> wow.sh
Использование read
для получения того же результата не так просто, как может показаться. \
- специальный символ в оболочке. Вам нужно будет использовать параметр -r
, что означает:
-r do not allow backslashes to escape any characters
cat
делает это по умолчанию. Более того, read
в любом случае не является подходящим инструментом для выполнения такого рода операций. Интуиция должна сказать вам то же самое, если вы сравните синтаксис обеих команд.
Есть еще одна команда, которая может вас заинтересовать. Это встроенный исходный код
, также вызываемый .
. Если вы получаете файл из своего сценария, он работает так, как если бы содержимое исходного файла присутствовало в сценарии. Таким образом, размещение этой строки в wow.sh
:
. xyz.sh
или
source xyz.sh
не копирует содержимое xyz.sh
в wow.sh
, но само содержимое xyz.sh
выполняется, а wow.sh
выполняется, как если бы оно присутствовало в сценарии. Конечно, только если файл xyz.sh
присутствует во время выполнения скрипта wow.sh
.