sh脚本环境变量
1. linux 在/usr/bin下的sh脚本不能随处执行的疑问
环境变量只保证在执行命令时,从其中路径搜索可执行文件可不是说,脚本中指定的文件名也会从这些目录搜索所以 脚本中的more bin.sh改成 more "$0"2. linux下shell的脚本无法获取别的用户的环境变量,该怎么解决
linux上遇到点问题,也没找到linux社区。 我是用root用户在/etc/profile中修改了java_home和catalina_home,这也能在所有其他用户环境下使用,就不用挨个设置了 可是我在另外一个用户下写了一个sh脚本:#!/bin/shecho $CATALINA_HOME 无法打印出$CATALINA_HOME的内容,只有一个空行。但是在命令提示符下输入:echo $CATALINA_HOME 时就能打印出$CATALINA_HOME 的具体路径。 ------解决方案--------------------------------------------------------探讨引用:那个用户需要重新登录,环境变量才能生效+_+------解决方案-------------------------------------------------------- 在shell脚本中执行cd命令,会临时进入那个路径,脚本执行结束时,你的当前路径又回到执行shell脚本之前的状态。 你可以这样执行你的脚本,注意前面的点 . yourshell ------解决方案--------------------------------------------------------探讨在shell脚本中执行cd命令,会临时进入那个路径,脚本执行结束时,你的当前路径又回到执行shell脚本之前的状态。 你可以这样执行你的脚本,注意前面的点 . yourshell ------解决方案-------------------------------------------------------- 执行脚本之前,手工执行 echo $catalina_home 看看 ------解决方案-------------------------------------------------------- 你把这个变量置为环境变量试试 ------解决告掘方案-------------------------------------------------------- 这是不可能事件,shell命令行里可以用,脚本里肯定也可以用,除非你的/etc/profile里没有export出去,袜链核那么相当于在shell里定义了一个普通变量,执行脚本的子进程自然不会见到这个变量,因为只有变量export成为shell的环境变量,才会被子进程继承环境变唤岩量。
3. 如何在shell脚本中使用变量
1、linux shell中的变量一般定义格式为:var=value。其中var是变量名称,=是赋值,value是给变量赋的值。比如下面的变量定义。
a=12;
b="helloworld"
2、注意变量名称的第一个字符不可以是数字,但是可以是下划线。如下示例则为非法的变量名。
3、要使用变量的值,在变量前面加上$符号即可。比如下面的示例:
123=123//这是错误的变量名称
_123=123//这是合法的。
4. sh脚本中的系统环境变量如何更新
可以在shell里这样写:export HOME=‘/home/sybase’
也可以调用系统的环境变量。找到环境变量文件
if [ -f /etc/init.d/functions ];
then
. /etc/init.d/functions
5. shell 通过传入的参数名去取环境变量
shell脚本中用$1取得第一袭粗猜拍型个参数PARAM,
再根据此变量名取得环境变量:
evalecho$$1
测凳碰试:
$a=3
$b=a
$evalecho$$b
3
6. 在执行a.sh这个shell脚本时会调用shell脚本b.sh,怎么通过a.sh给b.sh中环境变量重新赋值
使用 . 可以把另一个脚本读进来,,然后就可以引用其变量了
如
. /path/b.sh
b中的变量直接引用
7. windows怎么运行shell脚本
在工作中情况会在碰到linux下进行执行shell的脚本,而就会使用shell的脚本,但经常使用的Windows的系统,而想在Windows电脑中进行直接shell的脚本,而不用再进行学习其它的脚本语言。
工具/原料
Windows
git
方法/步骤
1、首先电脑中需要安装的是git的应用程序,安装完成之后,可以在开始菜单进行查看。
8. 在shell(#!/bin/sh)脚本中怎么使用expect命令,需要添加什么环境变量吗,正确即给分
首先你在命令行执行env expect,看expect能不能用,如果不能用,那么你需要找到expect执行文件路径,加入到PATH环境变量中去。
然后就可以在shell中使用了,有两种方式实现:
1.用here document
2.用expect -c
$cat 1.sh
#!/bin/sh
output=`expect <<EXP
puts "hello world"
EXP
`
echo "expect 1 output:"
echo $output
echo
echo "expect 2 output:"
expect -c 'puts "hello world!"'
$chmod 777 1.sh
$./1.sh
expect 1 output:
hello world
expect 2 output:
hello world!