使bash脚本切换到交互模式并给出提示
我正在编写一个培训工具,它是用bash编写的,用于教授bash/unix 我希望运行一个脚本来设置,然后将控制权交给用户。 我希望通过键入使bash脚本切换到交互模式并给出提示,bash,Bash,我正在编写一个培训工具,它是用bash编写的,用于教授bash/unix 我希望运行一个脚本来设置,然后将控制权交给用户。 我希望通过键入/script name可以轻松运行它 我该怎么做 即 用户类型:tutorial/run 运行教程脚本设置了一些内容 用户将看到一个任务。(这个钻头有效) 返回命令提示符,shell仍处于配置状态 当前,如果我键入,它将工作。教程/bashrc有几个选项: 使用源代码或在同一个shell中启动脚本 启动一个新shell,但将脚本作为初始化脚本: 第一
/script name
可以轻松运行它
我该怎么做
即
- 用户类型:
tutorial/run
- 运行教程脚本设置了一些内容
- 用户将看到一个任务。(这个钻头有效)
- 返回命令提示符,shell仍处于配置状态
当前,如果我键入
,它将工作。教程/bashrc
有几个选项:
- 使用
源代码
或
在同一个shell中启动脚本李>
- 启动一个新shell,但将脚本作为初始化脚本:
--init file
选项:
bash --init-file my-init-script
您甚至可以在shebang行中使用此选项:
#!/bin/bash --init-file
然后像往常一样开始编写脚本:
./script-name
例如:
$ cat ./script-name
#!/bin/bash --init-file
echo Setting session up
PS1='.\$ '
A=10
$ ./script-name
Setting session up
.$ echo $A
10
.$ exit
$ echo $A
$
如您所见,脚本为用户创建了环境,然后给了用户提示。尝试在~/.bashrc文件中将其作为别名。将其添加到~/.bashrc的底部:
alias tutorial='. tutorial/bashrc'
然后关闭并重新打开终端,或键入~/。bashrc
以重新获取资源
要使用此别名,只需调用
教程
,就会自动替换为其别名,就像您调用了一样。tutorial/bashrc
一些示例工作流在这里非常有用。--init file
没有任何后续工作。使用此技巧时,是否可以检测到正在运行的脚本?在我的Mac上,使用--init文件运行会导致$0扩展为“/bin/bash”