我的脚本文件的第一行有以下行:
#!/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/