我需要在shell中设置一些变量并在每次执行某个任务之前格式化shell提示符。我还需要记录我的行为。
目前,我正在运行一个脚本,收集所需的所有信息(部分通过用户输入),并设置新的shell提示符和变量。然后我用script $var-actionlog-$anothervar-1.log
开始录音。使用的变量是在my_script.sh
的调用期间设置的。然后,由于脚本命令生成了一个新shell,我需要再次调用source my_script.sh
。
有没有办法可以将script
- 部分直接包含在my_script.sh
中,这样我就不必再输入两次了?
答案 0 :(得分:1)
您可以在初始设置脚本中使用export
来使局部变量成为全局变量。例如,您的设置脚本my_script.sh
可以是:
#!/bin/sh
# A startup script
export var="world"
export PS1="\u@\h \w> "
echo "Please enter a number, followed by [ENTER]:"
read num
export anothervar="$num"
script $var-actionlog-$anothervar-1.log
然后,一旦脚本启动,确认您可以运行:
echo var=$var, anothervar=$anothervar
如果要在$PS1
中设置不同的shell提示符(my_script.sh
),以供打字稿使用,请确保未在{{1}中设置$PS1
}}。打字稿~/.bashrc
每次调用script $var-actionlog-$anothervar-1.log
并覆盖您的提示变量~/.bashrc
。要仅设置登录shell的提示,请在$PS1
中进行设置。