shell编程常用命令,Windows 7下常用shell命令介绍
shell编程常用命令,Windows 7下常用shell命令介绍详细介绍
本文目录一览: shell脚本基本命令
如何编写一个shell脚本首先打开编程界面,查看现在dog目录下的文件的权限信息。现在b.txt的用户权限是RW,组权限是RW,其他权限是R。现在我给用户权限加上X运行权限。
新建一个文件shell脚本一般用×.sh作为后缀当然勇气他的也可以。打开终端输入touchfirst.sh新建一个名为first的shell脚本。
在shell脚本中可以使用三类命令:1)Unix命令:虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
在UNIX/Linux下面编写一个SHELL脚本程序并不难,只要全屏幕编辑程序vi使用得熟练,即可以编写SHELL脚本程序。
如何在shell脚本中,判断一个基本命令执行是否成功符号显示上一条命令的返回值,如果为0则代表执行成功,其他表示失败。
用特殊变量:$?判断前一个命令的执行是否成功(或者说是返回码)执行成功变量的值是0,不是零表示没有执行成功例如:注意:一定要在命令执行后立即判断,否则后面的代码会冲掉$?变量的值。
shell脚本中判断上一个命令是否执行成功shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。结合if-else语句实现判断上一个命令是否执行成功。
第一步,将编写的bat批处理文件拖到cmd命令窗口中,以定期清除旧数据,见下图,转到下面的步骤。
、可以通过ps命令获取所有的进程,然后通过awk命令提取进程名,再用grep提取相应的进程名即可。
LINUX快速入门第八章:Shell基础1、第一种:BourneshellBourneshell又包括Bourneshell(sh)、Kornshell(ksh)、BourneAgainShell(bash)三种类型。Bourneshell(sh)由AT&T的SteveBourne开发,是标准的UNIXShell,很多UNIX系统都配有sh。
2、开头程序必须以下面的行开始(必须方在文件的第一行):!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
3、沿着前面的轨迹,接下来是Linux中shell脚本的学习。这对于生信工程师后续处理大量(海量更合适些)数据是非常非常重要的,但是同样的,作为一个有点古板的人,对于脚本是什么意思我都死磕了好久。
4、先看《鸟哥的Linux私房菜-基础学习篇》,这个建议买本书,随时可翻。
shell脚本read命令的用法)while外层的read依次读取的是文件pbook中的每一行,而内层的read是从console读取的内容。2)要实现whileread的嵌套,可以使用exec命令,将I/O重定向。注意exec的用法,以及括号的使用。
在shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是:read-pinputaval:valecho$val。read-从标准输入读取数值。这个read内部命令被用来从标准输入读取单行数据。
while条件do...done应该前面还有个do的。这是固定结构,满足条件就会一直循环下去。因为最后有输入重定向符号,将整个while循环条件的输入指定为config变量定义的文件。
Windows 7下常用shell命令介绍
Windows7相对Vista的系统提升是较大的,稳定性、兼容性、人性化等都有较。而Windows7中的shell命令行,则是许多用户都没有发现的又一重要更新,Windows7 shell是Win7系统的控制台。对于熟悉了命令行的人来说,用键盘调用程序比鼠标更快更省力。用户可以用“Shell:”命令调用一切可以用资源管理器打开的项目一次完需要很多步骤才能完成的任务,并且使用时的语法也很简单。但许多用户都不知道shell命令有哪些,与可实现的操作,那么接下来我们将对Vista之家下常用shell命令进行全面解析,帮助用户了解新系统下的新命令。shell:Profile该命令可以打开用户的总目录。在常规安装的情况下,位置是c:usersusername。你也可以通过点击系统开始菜单上的用户名称访问。也可以通过系统环境变量%userprofile%访问。shell:Personal这个命令可以打开当前用户的文档文件夹。也可以通过点击开始菜单中的我的文档进行访问。shell:SendTo这个命令可以访问系统“发送到”文件夹。如果你进入你的个人文件夹,会发现这个文件夹是隐藏的,如果试图双击进入,就会显示错误信息,通过 shell命令则可以正常访问。这是因为这个快捷方式实际上是个跳转入口,为了向后兼容所创建。而真正的SendTo文件夹是隐藏在AppData文件夹下的若干子文件夹。shell:Public这个命令可以打开公用共享文件夹。如果你使用了家庭组功能,这个命令可以在一个窗口之内先是信息。shell:Common Startup和shell:Startup这个命令可以显示哪些程序在系统启动时会自动启动。有时程序安装的时候会自动在启动菜单中建立一个快捷方式。shell:ConnectionsFolder这个命令可以显示当前网络连接。这个命令应该是查看当前网络连接最快捷的方式了。通常的方法是单击网络和共享中心,然后选择更改适配器设置查看。shell:programs和shell:Common Programs这两个命令可以访问当前用户和系统用户开始菜单中的程序列表。shell:AppData和shell:Local AppData这两个命令可以打开Roaming Application Data(漫游应用数据文件夹)Local Application Data(本地应用数据文件夹)。这两个文件夹在日常应用中不常用到,你可以发现,像Firefox之类的应用程序在这个文件夹下存储配置信息。shell:Cookies和shell:cache这两个命令是查看Internet Explorer存储信息最快捷的方式。shell:Profile当前登录用户的根目录shell:UsersFilesFolder与shell:profile相同shell:Personal当前登录用户的“我的文档”文件夹shell:My Music当前登录用户的“我的音乐”文件夹shell:My Pictures当前登录用户的“我的图片”文件夹shell:My Video当前登录用户的“我的视频”文件夹shell:Contacts当前登录用户的联系人文件夹shell:Desktop当前登录用户的桌面文件夹shell:Downloads当前登录用户的下载文件夹shell:Favorites当前登录用户的Internet Explorer浏览器收藏夹shell:Searches当前登录用户的搜索文件夹,保存了已经存储过的搜索结果shell:Links当前登录用户的链接文件夹,保存了Internet Explorer浏览器的导航面板shell:Public访问共享用户文件夹shell:Common Desktop共享用户桌面shell:Common Documents共享用户我的文档shell:CommonDownloads共享用户下载文件夹shell:CommonMusic共享用户音乐文件夹shell:CommonPictures共享用户图片文件夹
shell编程中可实现条件控制的命令是
Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式。有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。do和done之间的命令称为循环体,执行次数和list列表中常数或字符串的个数相同。for循环,首先将in后list列表的第一个常数或字符串赋值给循环变量,然后执行循环体,以此执行list,最后执行done命令后的命令序列。Sheel支持列表for循环使用略写的计数方式,1~5的范围用{1..5}表示(大括号不能去掉,否则会当作一个字符串处理)。Sheel中还支持按规定的步数进行跳跃的方式实现列表for循环,例如计算1~100内所有的奇数之和。
shell命令能打出par
回答: Shell命令可以打出par,这是因为par是一种文件格式,而Shell命令具有文件处理的能力。在Shell中,par文件是一种用于存储和传输归档数据的格式,它可以将多个文件打包成一个par文件,并且可以对par文件进行解包和提取文件的操作。
拓展: Shell命令是一种用于与操作系统交互的命令行解释器,它可以执行各种系统命令和操作。通过使用Shell命令,我们可以操作文件、执行程序、管理进程等。在处理文件时,Shell命令可以进行文件的创建、读取、写入、复制、移动、删除等操作,同时也可以对文件进行压缩、解压缩和归档等操作。
par文件是一种常见的归档文件格式,它可以将多个文件打包成一个文件,方便传输和存储。通过Shell命令,我们可以使用相应的命令行工具,如tar、zip等,对par文件进行创建、提取、解包等操作。这样可以方便地打包和传输多个文件,同时也可以节省存储空间。
总之,Shell命令具有文件处理的能力,可以通过相应的命令行工具对par文件进行操作,实现文件的打包、提取和解包等功能。这为我们在Shell环境下进行文件管理和归档提供了便利。
回答: Shell命令可以打出par,原因是par是一个Shell命令,用于将文本文件进行段落格式化处理。它可以根据指定的参数,将文本文件按照指定的行宽度进行分段,并将每个段落进行适当的缩进和对齐。par命令是一个功能强大且灵活的工具,可以帮助用户更好地处理和展示文本内容。
拓展: 除了par命令之外,Shell还有许多其他的文本处理命令,如grep、sed、awk等,它们可以用于搜索、替换、提取和处理文本数据。这些命令在Shell编程和系统管理中都起着重要的作用,能够提高工作效率和数据处理的灵活性。熟练掌握这些命令可以让我们更好地处理文本数据,提高工作效率。此外,Shell还支持管道和重定向等功能,使得我们可以将多个命令结合起来,实现更复杂的文本处理操作。对于需要频繁处理文本数据的任务,学习和掌握Shell命令是非常有益的。
Shell命令可以打出"par"是因为在Shell中,我们可以使用特定的命令来执行各种操作,包括打印输出文本。通过使用echo命令,我们可以将指定的文本输出到终端上。因此,当我们在Shell中输入以下命令时:
```
echo par
```
终端会输出"par"这个字符串。
需要注意的是,Shell命令不仅仅可以打印出"par"这个词组,还可以打印出任何我们想要的文本。例如,我们可以使用以下命令将"Hello World!"打印到终端上:
```
echo Hello World!
```
终端会输出"Hello World!"。
除了echo命令,还有其他的Shell命令可以用于打印输出,如printf命令等。这些命令在Shell编程中非常有用,可以用于将变量、结果等输出到屏幕上,方便我们查看和调试程序。
总而言之,Shell命令可以通过适当的命令来打印输出各种文本,包括"par"这样的词组。通过灵活运用Shell命令,我们可以实现各种文本处理和输出需求。
回答: 在shell命令行中,可以使用`par`命令打印出par。原因是`par`是一个可执行程序或脚本,当我们在命令行输入`par`时,系统会在环境变量`$PATH`所列出的目录中查找并执行名为`par`的可执行文件或脚本。
拓展: `par`是一个常用的命令行工具,用于将文本文件进行格式化和排版。它可以在指定的行宽内自动折行,调整段落间的间距,处理特殊字符等。通过使用不同的选项和参数,可以对输出进行各种定制化的设置,以满足不同的排版需求。
除了`par`命令,还有许多其他的shell命令可以实现类似的功能,比如`fmt`和`fold`等。这些命令可以帮助我们在命令行中对文本进行处理和格式化,提高文本的可读性和可用性。
需要注意的是,`par`命令的具体功能和用法可能因不同的操作系统和命令行环境而有所差异。因此,在使用`par`命令或其他类似命令时,建议查阅相关文档或使用命令的帮助功能来了解具体的用法和选项。
Shell命令能够打出par,是因为在Shell中,par是一个可执行的命令或者脚本文件。当我们在Shell中输入par时,Shell会搜索系统环境变量$PATH中定义的路径,找到par命令所在的位置,并执行该命令。
拓展一下,par命令是一个常用的命令行工具,用于对文件进行打包和解包操作。它可以将多个文件或目录打包成一个单独的文件,也可以将打包后的文件解包还原为多个文件或目录。par命令的使用非常灵活,可以通过参数指定打包或解包的方式、压缩级别等选项。
在使用Shell命令时,我们可以通过man命令查阅par命令的详细说明和使用方法。这样可以帮助我们更好地理解par命令的功能和用法,以便在实际操作中更加灵活和高效地利用par命令。
回答: Shell命令可以打出`par`,原因是`par`是一个常见的英文单词,而Shell命令可以通过打印字符串的方式输出任何字符组合。所以,只要使用Shell命令中的输出命令,如`echo`或`printf`,并将字符串设置为"par",就可以在终端中打印出"par"。
拓展: Shell命令是一种用于与操作系统交互的命令行解释器。它可以执行各种操作,包括文件管理、进程控制、网络通信等。通过Shell命令,我们可以方便地执行各种任务和操作,提高工作效率。
在Shell中,我们可以使用多种方式输出字符串或字符,如`echo`命令、`printf`命令等。这些命令可以根据我们的需求输出任何字符组合,包括"par"这样的单词。
需要注意的是,Shell命令对于大小写是敏感的。所以,如果要打印出"par",我们需要确保在命令中使用的字符串是"par",而不是"Par"或"PAR"。另外,还可以通过使用转义字符来输出特殊字符,如使用`\n`来表示换行符。
总之,Shell命令可以轻松地输出任何字符组合,包括"par"这样的单词。这使得我们可以在终端中灵活地打印出我们需要的内容。
Shell常用命令
1.ls: 以默认方式显示当前文件列表。
2.ls -a: 显示所有文件包括隐藏文件。
3.ls -l: 显示文件属性包括大小、日期等,还有是否可读可写。
4.ls -lt: 按照修改时间排序显示文件
1.cd dir: 切换到当前目录下的dir文件。
2.cd /: 切换到跟目录。
3.cd ..:切换到上级目录。
4.cd ../..: 切换到上二级目录。
1.cp source target:将文件source复制为target。
2.cp /root/source/ .: 将root下的文件source复制到当前目录。
1.rm file: 删除某一个文件。
2.rm -f file:删除时不进行提示,可以配合r使用。
3.rm -rf dir:删除当前目录下叫dir的整个目录。
1.mv file1 file2: 将文件file1改名为file2。
2.mv file dir: 将文件file移动到dir目录下。
1.diff file1 file2:比较两个文件。
2.diff dir1 dir2: 比较两个目录。
1.cat file: 查看文件file。
1.vi file:编辑文件file。
2.vi 原基本使用及命令:输入命令的方式为先按[ESC]键,然后输入 :w(写入文件),:w!(不询问方式写入文件),:wq保存并退出,:q退出,q!不保存退出
1.mkdir dir:创建一个空目录dir。
2.mkdir -p dir/dir2:递归创建两个目录。
1.tar xvf flie.tar: 解包。
2.tar cvf file.tar: 打包。
3.tar zxvf file.tar.gz: 解压。
4.tar zcvf file.tar.gz Dirname:压缩。
5.unzip file.zip: 解压。
6.zip file.zip dirname: 压缩。
7.rar x file.rar: 解压。
8.rar a file.rar DirName: 压缩。
1.gizp -d file.gz: 解压。
2.gzip file.tar.gz和.tgz: 压缩。
1.netstat [-acCeFghilMnNoprstuvVwx][-A
][--ip]
1.ssh -l iser1 192.168.1.2 : 使用用户名用户名user1登陆到192.168.1.2
1.touch file.txt:创建一个txt文件。
网络类型>
shell用法介绍
1、常用shell指令,脚本在文件开头加上set-e,这句语句告诉bash如果任何语句的执行结果不是true,则应该退出。2、shell变量基本用法局部变量:在脚本或命令中定义,只在当前shell实例中有用其他shell不能访问局部变量。环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。(export的环境变量)。shell变量:shell变量是由shell程序设置的特殊变量。
Linux shell常用命令
Linux shell常用命令汇总
对于经常使用linux系统的博主来说,基本常用的shell命令是少不了的,下面为大家总结了Linux shell的常用命令,希望对大家有所帮助!
1.检查远程端口是否对bash开放:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
2.让进程转入后台:
Ctrl + z
3、将进程转到前台:
fg
4.产生随机的十六进制数,其中n是字符数:
openssl rand -hex n
5.在当前shell里执行一个文件里的命令:
source /home/user/file.name
6.截取前5个字符:
${variable:0:5}
7.SSH debug 模式:
ssh -vvv user@ip_address
8.SSH with pem key:
ssh user@ip_address -i key.pem
9.用wget抓取完整的网站目录结构,存放到本地目录中:
wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
10.一次创建多个目录:
mkdir -p /home/user/{test,test1,test2}
11.列出包括子进程的进程树:
ps axwef
12.创建 war 文件:
jar -cvf name.war file
13.测试硬盘写入速度:
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
14.测试硬盘读取速度:
hdparm -Tt /dev/sda
15.获取文本的md5 hash:
echo -n "text" | md5sum
16.检查xml格式:
xmllint --noout file.xml
17.将tar.gz提取到新目录里:
tar zxvf package.tar.gz -C new_dir
18.使用curl获取HTTP头信息:
curl -I http://www.example.com
19.修改文件或目录的时间戳(YYMMDDhhmm):
touch -t 0712250000 file
20.用wget命令执行ftp下载:
wget -m ftp://username:password@hostname
21.生成随机密码(例子里是16个字符长):
LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
22.快速备份一个文件:
cp some_file_name{,.bkp}
23.访问Windows共享目录:
smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
24.执行历史记录里的命令(这里是第100行):
!100
25.解压:
unzip package_name.zip -d dir_name
26.输入多行文字(CTRL + d 退出):
cat > test.txt
27.创建空文件或清空一个现有文件:
\> test.txt
28.与Ubuntu NTP server同步时间:
ntpdate ntp.ubuntu.com
29.用netstat显示所有tcp4监听端口:
netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'
30.qcow2镜像文件转换:
qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
31.重复运行文件,显示其输出(缺省是2秒一次):
watch ps -ef
32.所有用户列表:
getent passwd
33.Mount root in read/write mode:
mount -o remount,rw /
34.挂载一个目录(这是不能使用链接的情况):
mount --bind /source /destination
35.动态更新DNS server:
nsupdate <
update add $HOST 86400 A $IP
send
EOF
36.递归grep所有目录:
grep -r "some_text" /path/to/dir
37.列出前10个最大的文件:
lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail
39.打开Vim并跳到文件末:
vim + some_file_name
40.Git 克隆指定分支(master):
git clone git@github.com:name/app.git -b master
41.Git 切换到其它分支(develop):
git checkout develop
42.Git 删除分支(myfeature):
git branch -d myfeature
43.Git 删除远程分支
git push origin :branchName
44.Git 将新分支推送到远程服务器:
git push -u origin mynewfeature
45.打印历史记录中最后一次cat命令:
!cat:p
46.运行历史记录里最后一次cat命令:
!cat
47.找出/home/user下所有空子目录:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
1.检查远程端口是否对bash开放:
find /home/user -maxdepth 1 -type d -empty
48.获取test.txt文件中第50-60行内容:
< test.txt sed -n '50,60p'
49.运行最后一个命令(如果最后一个命令是mkdir /root/test, 下面将会运行: sudo mkdir /root/test):
sudo !!
50.创建临时RAM文件系统 – ramdisk (先创建/tmpram目录):
mount -t tmpfs tmpfs /tmpram -o size=512m
51.Grep whole words:
grep -w "name" test.txt
52.在需要提升权限的.情况下往一个文件里追加文本:
echo "some text" | sudo tee -a /path/file
53.列出所有kill signal参数:
kill -l
54.在bash历史记录里禁止记录最后一次会话:
kill -9 $$
55.扫描网络寻找开放的端口:
nmap -p 8081 172.20.0.0/16
56.设置git email:
git config --global user.email "me@example.com"
57.To sync with master if you have unpublished commits:
git pull --rebase origin master
58.将所有文件名中含有”txt”的文件移入/home/user目录:
find -iname "*txt*" -exec mv -v {} /home/user \;
59.将文件按行并列显示:
paste test.txt test1.txt
60.shell里的进度条:
pv data.log
61.使用netcat将数据发送到Graphite server:
echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
62.将tabs转换成空格:
expand test.txt > test1.txt
63.Skip bash history:
< space >cmd
64.去之前的工作目录:
cd -
65.拆分大体积的tar.gz文件(每个100MB),然后合并回去:
split –b 100m /path/to/large/archive /path/to/output/files
cat files* > archive
66.使用curl获取HTTP status code:
curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null
67.设置root密码,强化MySQL安全安装:
/usr/bin/mysql_secure_installation
68.当Ctrl + c不好使时:
Ctrl + \
69.获取文件owner:
stat -c %U file.txt
70.block设备列表:
lsblk -f
71.找出文件名结尾有空格的文件:
find . -type f -exec egrep -l " +$" {} \;
72.找出文件名有tab缩进符的文件
find . -type f -exec egrep -l $'\t' {} \;
73.用”=”打印出横线:全选复制放进笔记
printf '%100s\n' | tr ' ' = ;
Shell基本脚本命令使用教程
1、本地变量:用户私有变量,只有本用户可以访问,保存在家目录的 .bash_profile、.bashrc文件中
2、全局变量:所有用户都可以使用,保存在 /etc/profile 文件中
3、用户自定义变量:用户自定义,比如脚本中的变量
定义变量格式: 变量名=值 (=两边不能有空格)
字符串用单引号或者双引号引起来
shell支持正则表达式的常见命令:grep、sed、awk。
sed 是一个行(流)编辑器,非交互式的对文件内容进行增删改查操作
awk 能够集过滤、提取、运算为一体,它的工作方式是读取数据,将每一行数据视为一条记录,每条记录以字段分隔符分成若干字段,然后输出各个字段的值。平行命令还有 gawk、pgawk、dgawk。
linux常用的shell有哪些
最常用的当然是bash这个shell了,不需要多说,因为大部分Linux发行版都默认是这个shell;还有C shell用户也很多,因为它的语法和C语言有点像;还有一个ash,念做A Shell,在智能路由器系统OpenWrt、LEDE上作为默认shell,话说玩路由器Linux系统OpenWrt的也不少啊,好多硬件论坛上都知道这个系统,所以ash也算是常用的Linux shell吧。
Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Linux常用的shell有哪些?
1、Bourne shell
Bourne shell是一个交换式的命令解释器和命令编程语言。
Bourne shell是标准的UNIX shell,以前常被用来做为管理系统之用。大部分的系统管理命令文件,例如rcstart、stop与shutdown都是Bourne shell的命令档,且在单一使用者模式下以root签入时它常被系统管理者使用。Bourneshell是由AT$T发展的,以简洁、快速著名,Bourne shell提示符号的默认值是$。
2、C shell
C shell是一种比Bourneshell更适合的变种shell,使用的是类C语言,csh是具有C语言风格的一种shell,其内部命令有52个,比较庞大。
C shell是柏克莱大学所开发的,且加入了一些新特性,如命令列历程、别名、内建算术、档名完成和工作控制。对于常在交谈模式下执行shell的使用者而言,他们较喜欢用C shell;但对于系统管理者而言,则较偏好以Bourne shell来做命令档,因为Bourne shell命令档比C shell命令档来的简单及快速。C shell提示符号的默认值是%。
3、korn shell
korn shell是一个Unix shell,它由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完全向上兼容Bourne shell并包含了c shell的很多特性,例如贝尔实验室用户需要的命令编辑。
Korn shell是Bourne shell的超集,由AT&T的David korn所开发。它增加了一些特色,比C shell更为先进。Korn shell的特色包括了可编辑的历程、别名、函式、正则表达式万用字符、内建算术、工作控制、共作处理和特殊的除错功能。Korn shell提示符号的默认值也是$。