shell中$1赋值给变量,此变量却是空的,为啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell中$1赋值给变量,此变量却是空的,为啥?相关的知识,希望对你有一定的参考价值。
FileName = $1
echo $1 >> /Users/beartech/Desktop/log.text
echo $FileName >> /Users/beartech/Desktop/log.text
这个几行代码,$1不为空,但是赋值给FileName,FileName却是空的,为什么啊?
自己找到答案了:
原因是头部问题
#!/bin/sh 修改成 #!/bin/bash 就好了
echo $FileName >.text
这个几行代码,FileName却是空的;Users/,为什么啊;log;>beartech/ /FileName = $1
echo $1 >,但是赋值给FileName;>Desktop/ 参考技术B ./表示执行当前目录下某个可执行文件,这个文件不一定是bash脚本,但是sh方式就只能执行shell脚本,如果一个二进制可执行程序你用sh ./binExample这种方式执行,会报错的。 参考技术C get_msisdn()
CMONTH=`date +%m`
day=`date +%Y%m%d`
echo $day
echo "select goodsname from goods_info_08 where goodsname like '%SVC_20110816351%';" > /idep/test/query.sql
sqlplus idep_admin@idepdb/sxdb9876 @/idep/test/query.sql<<!
/
exit
!
### main ####
CHECK_DIR=/idep/test
get_msisdn
结果:
GOODSNAME
--------------------------------------------------------------------------------
SVC_20110816351
SVC_20110816351
SVC_20110816351
SVC_20110816351
SQL>
GOODSNAME
--------------------------------------------------------------------------------
SVC_20110816351
SVC_20110816351
SVC_20110816351
SVC_20110816351
SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
为什么会出现2次结果?
如何把输出的结果赋值给一个变量? 参考技术D FileName=$1
赋值语句中不能有空格. 看看是不是这个问题.
怎么把shell后台输出赋值给变量
我有两个命令需要同时执行,输出结果赋值给两个变量,例子如下:
r0=`sleep 10;echo 10.0` &
r1=`sleep 10;echo 20.0` &
wait
echo $r0, $r1
结果显示:
,
怎么才能正常运行?
$ cat a.sh
#!/bin/bash
declare -i k
declare -i m
declare -a arr
k=0
m=0
rm -fr num.txt
touch num.txt
sleep 10;echo "10.0" >> num.txt; &
sleep 10;echo "20.0" >> num.txt; &
wait
while read line
do
arr[$k]=$line
((k++));
done < num.txt
while [ $m -lt $k ]
do
echo $arr[$m]
((m++))
done
运行它:
$ chmod +x a.sh
$ a.sh (或者 ./a.sh)
10.0
20.0
谢谢。因为不了解你的详细情况和需求。仅供参考。本回答被提问者和网友采纳
以上是关于shell中$1赋值给变量,此变量却是空的,为啥?的主要内容,如果未能解决你的问题,请参考以下文章