发布网友
共4个回答
热心网友
可以的,设定后在脚本运行中会一直生效
热心网友
因为 管道符 会新建shell来执行后面的while语句,a的值在新建shell中被改写。
你这里 ls 的结果只有一条,所以while循环只执行一次就退出了,从新建shell回到原shell,a的新值不会被带出来,还是"hehe"。
用输入重定向来替换管道符就行了,例如可以这样:
a="hehe"
while read line
do
a="wuwu"
echo "$a"
done <`ls -ltr`
echo "$a"
热心网友
如何通过shell脚本设置全局的环境变量
-bash-3.00# env
HZ=100
LC_MONETARY=en_US.ISO8859-1
SHELL=/usr/bin/bash
TERM=ansi
LC_NUMERIC=en_US.ISO8859-1
MAIL=/var/mail/pc
PATH=/usr/sbin:/usr/bin:.
LC_MESSAGES=C
LC_COLLATE=en_US.ISO8859-1
PWD=/export/home/pc
TZ=PRC
SHLVL=1
HOME=/export/home/pc
LOGNAME=pc
LC_CTYPE=en_US.ISO8859-1
LC_TIME=en_US.ISO8859-1
_=/usr/bin/env
如果只想看指定的变量设置,如路径PATH的设置,可以用 "echo $PATH"或 “ env | grep PATH"或” env | grep -i path"来查询。前面的适合知道全名的,后面2种适合只知道部分字段或者部分关键字母(甚至不确定字符大小写)的。
-bash-3.00# echo $PATH
/usr/sbin:/usr/bin:.
-bash-3.00# env | grep PATH
PATH=/usr/sbin:/usr/bin:.
热心网友
可以,如下
var="My global variable"