gpt4 book ai didi

bash - 是否可以在使用原始脚本的同时运行重复的 bash 脚本?

转载 作者:行者123 更新时间:2023-11-29 09:31:31 26 4
gpt4 key购买 nike

我使用 todo-txt管理我的待办事项列表。我认为这是一个很棒的工具,但我希望我可以有更多列表,它现在的工作方式是有一个 bash 脚本 todo.sh 管理一个包含多个条目的列表。我想要多个列表。是否可以创建 todo.sh 的副本,然后更改副本和配置文件中的所有环境变量,并以不同的名称同时存在脚本的两个工作副本?然后基本上是我尝试过的但它没有用,我最终收到以下错误:Fatal Error: is not a directory

我尝试的更精确:

  • 复制todo.sh -> todo2.sh
  • 复制 todo.cfg -> todo2.cfg
  • 更改 todo2.sh 将写入的配置文件中的目录
  • 更改配置文件中的环境变量并在 sublime 中使用“全部替换”更改 todo2.sh 中的相同变量
  • 调整我的 .zshrc 文件以引用适当的命令

我认为我可能误入歧途的主要地方是重命名环境变量。我什至不确定我正在做的事情是否可行。我已经压缩了我正在使用的所有文件,它们可以在这里找到:https://drive.google.com/open?id=0Bze975WJ_w5KM21QRVZZblFidzQ

编辑:使用@cb0 的方法:

~ pwd
/Users/max
~ ls | grep todo
todo
todo-projects
todo.cfg
todo2
~ ls todo
README.md done.txt evidence.log report.txt todo.txt todo.txt.bak
~ ls todo2
~ cd .todo
~/.todo ls -a
. .. .DS_Store .todo.cfg list2

/Users/max/.todo/.todo.cfg

# Your todo.txt directory
export TODO_DIR="/Users/max/todo"

# Your todo/done/report.txt locations
export TODO_FILE="$TODO_DIR/todo.txt"
export DONE_FILE="$TODO_DIR/done.txt"
export REPORT_FILE="$TODO_DIR/report.txt"

/Users/max/.todo/list2/.todo2.cfg

# Your todo.txt directory
export TODO_DIR="/Users/max/todo2"

# Your todo/done/report.txt locations
export TODO_FILE="$TODO_DIR/todo.txt"
export DONE_FILE="$TODO_DIR/done.txt"
export REPORT_FILE="$TODO_DIR/report.txt"

/Users/max/.zshrc

alias t='todo.sh -d /Users/max/.todo/.todo.cfg'
alias t2='todo.sh -d /Users/max/.todo/list2/.todo2.cfg'

最佳答案

您不需要复制脚本。我只是看了一下它,并使用 2 个不同的待办事项列表让它工作。

假设您已经在系统某处安装了脚本的单个副本,并且可以使用 todo.sh 调用它。 .现在您的现有配置位于 ~/.todo/config 下内容如下:

export TODO_DIR=$(dirname "$0")
export TODO_FILE="$TODO_DIR/todo.txt"
export DONE_FILE="$TODO_DIR/done.txt"
export REPORT_FILE="$TODO_DIR/report.txt"

因此您的任务将保存在“~/.todo/”下的不同文件中。

现在您要创建第二个待办事项列表。因此创建第二个目录,例如在 ~/.todo/list2/ 下.然后复制~/.todo/config~/.todo/list2/configList2并像这样编辑它:

export TODO_DIR=~/.todo/list2/
export TODO_FILE="$TODO_DIR/todo.txt"
export DONE_FILE="$TODO_DIR/done.txt"
export REPORT_FILE="$TODO_DIR/report.txt"

您现在创建了第二个配置文件,表明它的目录位于“~/.todo/list2/”下。

现在像这样在你的“.bashrc”或“.zshrc”中创建一个别名。

alias todo2="todo.sh -d ~/.todo/list2/config"

这只会调用 todo.sh还要指定一个配置文件参数 -d .现在使用源重新加载文件。

source ~/.zshrc

现在您有 2 个列表可以使用。让我们首先向第一个列表添加一个项目:

>todo.sh list
full:
-- TODO: 0 of 0 tasks shown

>todo.sh add "List 1, ToDo Item"
>todo.sh list
sh: todo.sh full:
2 List 1, ToDo item
-- TODO: 1 of 1 tasks shown

然后另一个到第二个列表。

>todo2 list 
sh: todo.sh
full:
-- TODO: 0 of 0 tasks shown

>todo2 add "List 2, ToDo item"
>todo2 list
sh: todo.sh
full:
1 List 2, ToDo Item
--
TODO: 1 of 1 tasks shown

我希望这就是您要找的。

关于bash - 是否可以在使用原始脚本的同时运行重复的 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37337800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com