shell脚本赋值
⑴ shell脚本中无法对数组赋值
第一行申明shell的时候sh改为bash就好了。
( ) 这种赋值方法在sh里不支持。
⑵ shell脚本中sql语句得到一个值,赋值给变量出错
你没有理解输入重定向的概念。在你上面的代码中,mysql
-uddap
-p$2是包含在输入重定向范围内的,所以不会提示你输入密码的。
你的$1
和$2也没有定义,可以参考如下写法:
#!/bin/sh
read
-p
"please
input
root
password"
pwd
mysql
-uroot
-p$pwd
<<
eof
\.
/usr/src/ddap-1.createuser.sql
\.
/usr/src/ddap-2.createdatabase.sql
\.
/usr/src/ddap-3.createtable.sql
\.
/usr/src/ddap-4.createprocereandfunction.sql
\.
/usr/src/ddap-5.createdata.sql
eof
⑶ 在Shell脚本中,读取键盘输入的内容并将其赋值给Shell变量的命令是什么
在sell脚本中,读取键盘输入的内容并将其赋值给shell变量的命令为:
read-p"inputaval:"valecho$val
read - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。
它的语法形式一般是:
read[-options][variable...]
这里的 options 是下面列出的可用选项中的一个或多个,且 variable 是用来存储输入数值的一个或多个变量名。 如果没有提供变量名,shell 变量 REPLY 会包含数据行。
基本上,read 会把来自标准输入的字段赋值给具体的变量。
⑷ 求救!shell脚本while中赋值无效
改用for循环就可以了:
for line in $(grep "TEST" logcat.txt)
⑸ 如何给shell脚本变量赋值,gbase数据库查询的结果
shell变量名=`gbase数据库查询命令`
示例:result=` ... `; echo $result;
⑹ shell脚本 变量动态赋值问题
#!/bin/bash
ax="yyf"
bx="xnmbyy"
xv=`eval expr '$'$1x`
echo $xv
⑺ shell脚本中如何给变量赋值,为什么不能正确打印结果,另外如何给日志文件名换成动态的,也就是每一天的
#!/bin/bash
TIME=`date +%F`
DIR="/home/flycat/test.log"
_result=`grep 'RETCODE不为000000' $DIR | wc -l`
echo "RETCODE不为000000 :$_result" > ${TIME}.log
⑻ shell脚本怎样把一个文件的内容赋值给一个变量
linux 将文件内容赋值给shell脚本中的变量:
1#!/bin/sh
2 maildir=kewaringmail
3 lastVersion=xxxxxxxxxxxxxx/lastVersion/datestr.txt
4 mydatestr=`sed -n '1p' $lastVersion`
5 echo "the datestr is $mydatestr"
⑼ shell脚本变量的定义与赋值
定义变量
Shell 支持以下三种定义变量的方式:
variable=value
variable='value'
variable="value"
variable 是变量名,value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、Tab 缩进等),那么可以不使用引号;如果 value 包含了空白符,那么就必须使用引号包围起来。使用单引号和使用双引号也是有区别的,稍后我们会详细说明。
注意,赋值号=的周围不能有空格,这可能和你熟悉的大部分编程语言都不一样。
Shell 变量的命名规范和大部分编程语言都一样:
变量名由数字、字母、下划线组成;
必须以字母或者下划线开头;
不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。
变量定义举例:
url=http://c.biancheng.net/shell/
echo $url
name='C语言中文网'
echo $name
author="严长生"
echo $author
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号$即可,如:
author="严长生"
echo $author
echo ${author}
变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
skill="Java"
echo "I am good at ${skill}Script"
如果不给 skill 变量加花括号,写成echo "I am good at $skillScript",解释器就会把 $skillScript 当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
推荐给所有变量加上花括号{ },这是个良好的编程习惯。
修改变量的值
已定义的变量,可以被重新赋值,如:
纯文本复制
url="http://c.biancheng.net"
echo ${url}
url="http://c.biancheng.net/shell/"
echo ${url}
第二次对变量赋值时不能在变量名前加$,只有在使用变量时才能加$。
⑽ shell脚本里赋值运算符 =,:=,+=,=的区别
'='就是赋值运算
':='就是当冒号前面的变量不存在或值为空时,就把等号后的值赋值给变量
'+='这个应该不用解释吧,和C中一样,变量等于本身和另一个变量的和
'?='没见过,不知道LZ说的是不是'?',它的意思是在语句a?b中如果a未定义则用b替换a