❶ 怎么把shell后台输出赋值给变量
写一个a.sh脚本:
$
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脚本变量的定义与赋值
定义变量
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脚本怎样读取文件的值,并赋值给变量
在sell脚本中,读取键盘输入的内容并将其赋值给shell变量的命令为:
read -p "input a val:" val echo $val
read - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。
它的语法形式一般是:
read [-options] [variable...]
(3)shell命令赋值给变量赋值扩展阅读:
Shell是一种脚本语言,常见的脚本解释器有:
bash:是linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。
sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。
常见的编程语言分为两类:一个是编译型语言,如:c/c++/java等,它们远行前全部一起要经过编译器的编译。
❹ 如何在shell中把当前路径赋值给一个变量
c=$PWD
$PWD表示当前路径,将$PWD赋值给c变量c即为当前路径的值
❺ shell中如何把一段指令的结果赋值给变量
用反引号将命令括起来,如变量=`命令`
用美元符和小括号将命令括起来,如变量=$(命令)
❻ 在shell中变量赋值有四种方法,其中name=12的方法哇
用awk或者是cut
把指定的字段(用一定的分隔符分隔的字段)赋值给某个变量
variable=`awk
'{print
$n}'
filename`
用cut也能实现类似的办法用awk的substr函数把指定字段的某几个字符赋值给variable,看下边的例子:
ifconfig
|grep
"inet
addr"
...
❼ 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"