相关文章推荐
冷静的柑橘  ·  We need your consent·  2 年前    · 
风流倜傥的大蒜  ·  Need explanation on ...·  3 年前    · 
聪明伶俐的脸盆  ·  SHOW [FULL] ...·  3 年前    · 

date的话你用$()引起来,或者键盘左上角那个符号引起来才能执行

echo "time is $(date +%T)!"像这样

echo ./run_nets.sh $(pwd)/$onchip_temp >> nansong_run_nets.sh

B.shell if语句:

菜鸟我最近在学习shell脚本,自己写了个很简短的脚本测试下,一直报错“syntax error near unexpected token `then' ”。上网google了一圈也没发现原因。原来我在写if条件判断的时候,if后面缺少一个空格 。

[plain] view plain 在写if条件判断的时候,要注意不但if后面需要空格,而且“ [ ” 后面 和“ ] ”前面都需要有空格。有没有感觉很无语。还有一点需要谨记,在shell脚本中当使用“ = ”给变量赋值的时候,在 “ = ”两边 一定不能加空格 ,否者会把变量名当作一个命令来执行而报出“ command not found ”的错误,但是在if条件判断的时候, if [ "判断条件" ] 判断条件中需要用到比较的时候则“ = ” 或者 " != "的两边都需要用空格隔开 。另外在写if判断的时候,不要忘记then,否者也会有问题。当然elif(相当于else if)是可选的。

下面再总结一下shell脚本中,if判断中的测试选项。

1,关于文件的判断

返回 true 如果...

-e 文件存在
-f file 是一个 regular 文件(不是目录或者设备文件)
-s 文件长度不为 0
-d 文件是个目录
-b 文件是个块设备(软盘,cdrom 等等)
-c 文件是个字符设备(键盘,modem,声卡等等)
-p 文件是个管道
-h 文件是个符号链接
-L 文件是个符号链接
-S 文件是个 socket
-t 关联到一个终端设备的文件描述符
这个选项一般都用来检测是否在一个给定脚本中的 stdin[-t0]或[-t1]是一个终端
-r 文件具有读权限(对于用户运行这个 test)
-w 文件具有写权限(对于用户运行这个 test)
-x 文件具有执行权限(对于用户运行这个 test)


-g  set-group-id(sgid)标志到文件或目录上,如果一个目录具有 sgid 标志,那么一个被创建在这个目录里的文件,这个目录属于创建这个目录的用户组,并不一定与创建这个文件的用户的组相同.对于 workgroup 的目录共享来说,这非常有用.见<<UNIX 环境高级编程中文版>>第 58 页.

-u  set-user-id(suid)标志到文件上如果运行一个具有 root 权限的文件,那么运行进程将取得 root 权限,即使你是一个普通用户.[1]这对于需要存取系统硬件的执行操作(比如 pppd 和 cdrecord)非常有用.如果没有 suid 标志的话,那么普通用户(没有 root 权限)将无法运行这种程序.见<<UNIX 环境高级编程中文版>>第 58 页.
-rwsr-xr-t
1 root
178236 Oct 2 2000 /usr/sbin/pppd
对于设置了 suid 的文件,在它的权限标志中有"s".

-k  设置粘贴位,见<<UNIX 环境高级编程中文版>>第 65 页.对于"sticky bit",save-text-mode 标志是一个文件权限的特殊类型.如果设置了这个标志,那么这个文件将被保存在交换区,为了达到快速存取的目的.如果设置在目录
中,它将限制写权限.对于设置了 sticky bit 位的文件或目录,权限标志中有"t".
drwxrwxrwt
7 root
1024 May 19 21:26 tmp/
如果一个用户并不时具有 stick bit 位的目录的拥有者,但是具有写权限,那么用户只能在这个目录下删除自己所拥有的文件.这将防止用户在一个公开的目录中不慎覆盖或者删除别人的文件,比如/tmp(当然 root 或者是目录的所有者可以随便删除或重命名其中的文件).

-O 你是文件的所有者.
-G 文件的 group-id 和你的相同.
-N 从文件最后被阅读到现在,是否被修改.

f1 -nt f2     文件 f1 比 f2 新

f1 -ot f2     f1 比 f2 老

f1 -ef f2     f1 和 f2 都硬连接到同一个文件.

!                非--反转上边测试的结果(如果条件缺席,将返回 true)

2,关于字符串的判断

str1 = str2       当两个串有相同内容、长度时为真
str1 != str2      当串str1和str2不等时为真
-n str1        当串的长度大于0时为真(串非空)
-z str1        当串的长度为0时为真(空串)

str1          当串str1为非空时为真

3,数字的判断
int1 -eq int2    两数相等为真

int1 -ne int2    两数不等为真
int1 -gt int2     int1大于int2为真
int1 -ge int2    int1大于等于int2为真
int1 -lt int2      int1小于int2为真
int1 -le int2     int1小于等于int2为真 A.打印时间戳:date的话你用$()引起来,或者键盘左上角那个符号引起来才能执行echo &quot;time is $(date +%T)!&quot;像这样echo ./run_nets.sh $(pwd)/$onchip_temp &amp;gt;&amp;gt; nansong_run_nets.shB.shell if语句: 菜鸟我最近在学习shell脚本,自己写了个很简短的脚本测试下,一直报错“syntax error... [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d DIR ] 如果 FILE 存在且是一个目录则为真。
1. if-then 语句 最基本的结构化命令就是 if-then 语句 。 if-then 语句 有如下格式。ba sh shell 的 if 语句 会运行 if 后面的那个命令。如果该命令的退出状态码是 0即该命令运行成功,位于 then 部分的命令就会被执行。如果该命令的退出状态码是其他值, then部分的命令就不会被执行。fi 语句 用来表示 if-then 语句 到此结束。 if command commands 语句 形式还可以写成这样 if command; then
什么是 Shell ? shell 是用户和Linux(或者更准确的说,是用户和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由 shell 先解释然后传给Linux内核。 shell 是一个命令语言解释器(command-language interpreter)...
Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质 用户通过 Shell 来使用 Linux,不启动 Shell 的话,用户就没办法使用 Linux; Shell 就是一个“中间商”,它在用户和内核之间“倒卖”数据 进入 Shell 的方法是让 Linux 系统退出图形界面模式,进入 控制 台模式,这种模式称为 Linux 控制 台 Ba sh 的功能和特性 历史命令:保存执行过的命令,可以快速重.
菜鸟我最近在学习 shell 脚本,自己写了个很简短的脚本测试下,一直报错“syntax error near unexpected token `then' ”。上网google了一圈也没发现原因。原来我在写if条件判断的时候,if后面缺少一个空格。 if [ 判断条件 ]       在写if条件判断的时候,要注意不但if后面需要空格,而且“ [ ” 后面 和“ ] ”前面都需要有空格。有没
shell 脚本的测试大家经常使用的方法就是使用 echo 出数据来看是否符合程序运算的值。 如果脚本过大的,这使用定义的常量开关开 控制 echo 的输出。 这里给大家介绍一个方法,在脚本里面#!/usr/bin/ sh 后设置一行set -xv就可以直接进入调试模式了。 而且一目了然。 请看如下列子: [www.linuxidc.com @linuxsource]$ls ada  gcc-4.4.
文章目录1、if 的基本语法:2、字符串的判断3、数值的判断4、文件和目录的判断5、复杂逻辑判断示例1:`与` 的使用示例2:`或` 的使用5、举例6、条件变量替换: 1、if 的基本语法: if [ command ];then 符合该条件执行的 语句 elif [ command ];then 符合该条件执行的 语句 符合该条件执行的 语句 2、字符串的判断 字符串批较时,变量一定要用 双引号。 [ -z "str" ] 如果str的长度为零,则为真 ,即判断是否为空,空即
命令 控制 的方法流程示例: ⛅应用程序-->系统命令/ shell 命令---> Shell 解释器--->系统接口--->内核--->硬件 ⛅系统命令/ Shell 命令---> Shell 解释器--->系统接口--->内核--->硬件 ⛅应用程序--->系统命令/ Shell 命令--->系统接口--->内核--->硬件 2.为何要用系统命令 为了使用计算机 一.Ba sh