相关疑难解决方法(0)

“。”之间有区别吗?毕竟,bash 中的“源”?

我正在寻找“。”之间的区别。和“源”内置命令和一些源(例如,在讨论中,以及bash 手册页)表明它们是相同的。

但是,由于环境变量的问题,我进行了测试。我创建了一个testenv.sh包含以下内容的文件:

#!/bin/bash
echo $MY_VAR
Run Code Online (Sandbox Code Playgroud)

在命令提示符下,我执行了以下操作:

> chmod +x testenv.sh
> MY_VAR=12345
> ./testenv.sh

> source testenv.sh
12345
> MY_VAR=12345 ./testenv.sh
12345
Run Code Online (Sandbox Code Playgroud)

[注意第一种形式返回一个空字符串]

所以,这个小实验表明,有毕竟有差别,其中的“源”命令,孩子的环境继承所有从父之一,这里的变量“” 它不是。

我是否遗漏了什么,或者这是bash的未记录/不推荐使用的功能?

[GNU bash,版本 4.1.5(1)-release (x86_64-pc-linux-gnu)]

bash scripts environment-variables environment

42
推荐指数
2
解决办法
5万
查看次数

第一个 '.' 是什么意思?' 中的意思。~/.bashrc'?

我看到一篇关于修复你的别名的帖子.bashrc

他说在你把你的别名放进去后.bashrc,你需要使用:

. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

我不太明白第一个点(' . ') 在这里做什么。它的功能是什么,叫什么名字?

command-line bash scripts alias bashrc

11
推荐指数
2
解决办法
3014
查看次数

如何在终端启动时运行源代码?

我已经准备好了别名.bash_aliases
我现在遇到的问题是我需要先运行source ~/.<filename>才能执行别名命令。

我的问题是如何source ~/.<filename>在用户打开终端时运行。

alias

4
推荐指数
1
解决办法
1万
查看次数

在 cron 环境中无法识别 bash 中内置的“源”

一个用户 crontab 条目,内容如下:

0 */4 * * * $HOME/postscript/fprogcache-sync
Run Code Online (Sandbox Code Playgroud)

工作正常。想在 cron-job 上下文中添加一些环境变量,然后我尝试

0 */4 * * * source $HOME/.profile; $HOME/postscript/fprogcache-sync
Run Code Online (Sandbox Code Playgroud)

直到我更改source.. 错误消息(通过 postfix 邮件发送到 root)是/bin/sh: 1: source: not found,然后确认脚本继续愉快地执行。

我记得曾在某处阅读过在 bash shell中source被定义为内置函数的别名的地方.。如果是这样,它将解释为什么source在 cron 上下文中不被识别。

是这样吗?如果是这样,.定义的系统范围别名在哪里?

bash cron alias 14.04

2
推荐指数
1
解决办法
2444
查看次数

有什么作用。在 。.bash_profile 是什么意思?

该命令. .bash_profile用于重新加载(?)bash_profile。第一个的一般目的是.什么?如何使用它以及是否有资源可以阅读有关终端的这些类型符号的信息?

command-line bash

2
推荐指数
1
解决办法
782
查看次数