linux - 在csh中设置环境变量

标签 linux shell environment-variables csh

我的脚本文件的第一行有以下行:

#!/bin/sh

所以我正在使用 csh.(?)

我想将以下输出分配给环境变量:

echo $MYUSR | awk '{print substr($0,4)}'

我尝试:

set $MYVAR = echo $MYUSR | awk '{print substr($0,4)}'

但是没用 我该怎么做?我想在 sh 文件中完成。

最佳答案

你的脚本应该是这样的

 #!/bin/csh

 set MYVAR = `echo $MYUSR | awk '{print substr($0,4)}'`

 echo $MYVAR

我现在没有办法测试这个,如果它不起作用,现在让我来测试。


如果您从其他人那里继承了脚本的基础,使用 #!/bin/sh, 然后你必须找出/bin/sh 是否真的是 bourne shell,或者它是否是/bin/bash 的链接

你可以通过做来判断

   ls -l /bin/sh /bin/bash

如果你得到大小完全相同的文件的信息,那你真的在使用 bash,但称为/bin/sh

所以尝试这两种解决方案

   MYVAR=$(echo $MYUSR | awk '{print substr($0,4)}')
   echo $MYVAR

   MYVAR=``echo $MYUSR | awk '{print substr($0,4)}``  
   echo $MYVAR

   # arg!! only one pair of enclosing back-ticks needed, 
   # can't find the secret escape codes to make this look exactly right.

在所有情况下 (csh) 包括在内,反引号和 $( ... ) 被称为命令替换。 在内部运行命令的每个输出都被替换到命令行中,然后执行整个命令。

希望对您有所帮助。

关于linux - 在csh中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739516/

相关文章:

linux - BASH Wikitables 获取硬件信息

python - 如何将 python gcc 绑定(bind)更改为 gcc 4.8 版本?

macos - 从 sed 中提取多个捕获组到变量

spring-boot - Kubernetes自动生成的环境变量设置错误?

environment-variables - 特拉维斯 : Can you construct env var using other env vars?

linux - 如何替换自定义发行版中的 Ubuntu Logo 和品牌标记?

windows - 跨平台编程语言 2D/3D?

Python shell 由于递归深度而重新启动

linux - 为什么 ls 和 ls -l linux 命令之间的计数不同?

c++ - getenv 是否缓存结果?