在脚本中包含bash“script”命令

时间:2013-01-28 10:19:25

标签: shell logging include

我需要在shell中设置一些变量并在每次执行某个任务之前格式化shell提示符。我还需要记录我的行为。

目前,我正在运行一个脚本,收集所需的所有信息(部分通过用户输入),并设置新的shell提示符和变量。然后我用script $var-actionlog-$anothervar-1.log开始录音。使用的变量是在my_script.sh的调用期间设置的。然后,由于脚本命令生成了一个新shell,我需要再次调用source my_script.sh

有没有办法可以将script - 部分直接包含在my_script.sh中,这样我就不必再输入两次了?

1 个答案:

答案 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中进行设置。