gpt4 book ai didi

linux - 从 cshell (tcsh) 执行 bash shell

转载 作者:太空宇宙 更新时间:2023-11-04 09:19:37 26 4
gpt4 key购买 nike

我有一个应该很简单的问题,但我无法在任何地方找到解决方案。

我正在尝试做一些像在 bash 脚本中设置和环境变量一样简单的事情。从 bash 终端运行脚本它工作正常,但是从 tcsh 运行它,这是我正在使用的机器上的默认设置,当我尝试导出我的变量时,我得到了未知的命令。

这是我的非常简单的脚本。我的_tmp_script.sh

#!/bin/bash

#clear
echo $$

echo "setting environment variables"
MY_TEMP_ENVVAR=123@tmp.com
export MY_TEMP_ENVVAR
echo $MY_TEMP_ENVVAR

如果我获取这个我得到

source my_tmp_script.sh
8790
setting environment variables
MY_TEMP_ENVVAR=123@tmp.com: Command not found.
export: Command not found.

如果我改用 bash shell,它工作得很好。

我错过了什么?

谢谢

最佳答案

获取脚本意味着当前 shell 进程执行脚本命令,而执行脚本时 shell 会生成一个新进程并等待它完成(除非在后台启动 &)以获取退出状态($?)。

兴趣是修改当前的 shell 设置,这不能通过执行脚本来完成。

使用 tcsh shell 获取 bash 脚本是无稽之谈,因为它们是不同的语言,bash 设置可能对 tcsh shell 没有用。

错误提示tcsh无法定义和导出环境变量

用庆典

MY_TEMP_ENVVAR=123@tmp.com
export MY_TEMP_ENVVAR

用 tcsh

setenv MY_TEMP_ENVVAR=123@tmp.com

如果可能,另一个解决方案是更改默认 shell 或在登录时启动 bash,shebang (!#/bin/bash) 在获取脚本文件时无效。

关于linux - 从 cshell (tcsh) 执行 bash shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388956/

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