什么是可接受的自定义bash脚本来源方式



我正在开始自动化MBP上的一些文档功能,我想学习一些很好的方法来获取与bash一起使用的自定义脚本。我(在过去的一年里(学习了MBP,并一直在学习包管理的诀窍以及shell调用是如何发生的。我有一个来自brew的5.x版本的bash,最初用.bash_profile启动我的config.dot文件

function mkr() {
touch $1/readme.md
if [ $? -eq 0 ]
then
echo "Successfully created file" # stdout
# exit 0 # success but it kills the shell?
else
echo "Could not create file" >&2 # out to stderr
# exit 1 # they killed kinney
fi
}
######CLI to invoke the above script named .mk_readme.sh
$ mkdir ~/path/to/new/dir
$ mkr !!:1

我担心的是:

  1. 有没有更有效的方法来处理一个简单的任务,以加快如上所述的工作流程
  2. 在获取文件时,最好只根据需要获取单个脚本或自定义脚本的目录。我的猜测是解决方案取决于用例。也许我们需要开发人员记录他们的工作,以及他们使用这个聚合目录并从中获取所需的所有脚本。然后我们看一下采购的应用程序方面,并将其单独汇总
  3. 我正在用source ./.mk_readme.sh查找当前位于.bash_profile中的文件。我读过一篇关于通过.bashrc实现这一点的文章。这会产生什么后果?最好的做法是将source .bashrc放入.bash_profile中,还是只保留~中的目录,这些目录需要直接从.bash_profile进行源代码处理
  4. 有人能给我一个快速解决如何处理这里的退出状态的最佳方法吗?我正在使用VSCode,它在成功创建自述文件后杀死了内部终端。在我目前的思考过程中,如果调用mkr有问题!!:1(也许我打电话给!!:2是偶然的(我可能想要一个文件创建不成功的警告,但它不会从内部破坏我当前正在运行的shell

我可能已经开始思考答案了,因为它可能取决于在Mac或Posix/Unix/Linux机器上加载的内容。我是Mac的新手,在云和裸机上都接触过UbuntuDebian和Fedora/RHEL/CentOS-我只是想了解更多关于这款笔记本电脑的信息,它现在的价格比我的车还高:(谢谢你提前考虑。

每个问题的反馈:

  1. 是否有更有效的方法来处理简单的任务以加快速度像上面这样的工作流程

脚本很简单。请考虑测试该文件是否在touch之前就已经存在,是否存在碰撞时间戳或执行其他一次性命令的副作用。[ -f $1/readme.md ] && return

  1. 在获取文件时,最好只获取单个脚本

这两个选项都是合理的,bash将以有效的方式处理这两个问题。设置一个将包含在"PATH"中的共享文件夹可以更容易地进行更改、添加脚本等。我认为(从管理的角度来看(与在bash启动期间寻找单个文件相比,这更高效。

  1. 我正在用来源。/。mk_readme.sh

虽然为每个bash启动添加一个函数定义很小,但这通常不会很好地扩展。从表面上看,该功能将偶尔使用(每个文件夹一次(。我建议添加对脚本的引用。如果它只用于交互式会话,您可以在"~/.bashrc"中使用别名。很容易陷入滑坡,在那里会出现额外的3个字母的命令。

  1. 有人能给我一个快速解决问题的最佳方法吗

不幸的是,我没有从VS运行bash脚本的经验

* Alternative, instead of running window 'pause', use 'read', to wait for standard input.
* Modify the launcher to pass env var "EXIT_PAUSE=1", add '[ "$PAUSE" ] || trap 'echo 'echo "exit $?" ; pause' EXIT' to the top your script

最新更新