我在此处编写此文档以获取路径下的一些脚本,~/own_scripts/
但我以导致此路径重复的方式编写它:
source <<-EOF
~/own_scripts/1.sh
~/own_scripts/2.sh
# More scripts under ~/own_scripts;
EOF
使用路径设置并稍后取消设置变量很好,但仍然会导致冗余。
避免此类source
(或bash
)此处文档中路径冗余的最佳方法是什么?
我在此处编写此文档以获取路径下的一些脚本,~/own_scripts/
但我以导致此路径重复的方式编写它:
source <<-EOF
~/own_scripts/1.sh
~/own_scripts/2.sh
# More scripts under ~/own_scripts;
EOF
使用路径设置并稍后取消设置变量很好,但仍然会导致冗余。
避免此类source
(或bash
)此处文档中路径冗余的最佳方法是什么?
here-document 只是一个文档。此处文档中的脚本只是一个脚本。
你的脚本可以写成
或者,如果调用了您想要调用的所有脚本,
n.sh
范围n
从 1 到 30:那是,
事实上,由于 here-document now 非常短,您可以
cd
再次删除:只是,
source
不从标准输入中读取...所以从这里获取文档是行不通的。相反,使用类似
(如果
bash
是您要运行脚本的 shell)。我习惯于
'END_SCRIPT'
启动此处文档。引号会阻止当前 shell 在文档中扩展变量,而更详细的标记将作为文档提供给读者。我用过
$HOME
而不是,~
因为代字号的行为不像变量,更详细的更$HOME
适合作为脚本中的文档。此处文档中的脚本仅用于
cd
将目录更改为$HOME/onw_script
目录。如果失败,则终止 shell 会话。在带有
for
-loop 的示例中(将在shellbash
中运行ksh
),我生成了要在循环中执行的脚本的名称。在尝试执行它之前,我还测试了是否真的有一个具有该名称的可执行文件(通过-x
测试)。