shell脚本中的括号
1、第二个括号不能换成其他的,中括号,大括号,双中括号,双括号都不可以,意思都不一样。
2、:-是一起的;fileuser
如果有值的话,就用所拥有的值赋予给filename变量;无值的话,就把filenname赋予给fileuser,再赋予给filename变量
3、大括号可以不要,大括号里不做如何的参数变化可以舍去。
你最好修改下:
#!/bin/bash
read
-p
"please
you
nmae
"
fileuser
date=$(date
--date='2
day
ago'
+%Y%m%d)
filename=${fileuser:-"filename"}
file=$filename$date
touch
$file
这样或许能更好体现出意义来
❷ shell中尖括号的意义 sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
不是尖括号,是输入输出重定向符号。
< $@.$$$$
> $@
sed中的替换方法:
sed 's/str1/str2/' <oldfile >newfile
或
sed 's/str1/str2/' oldfile >newfile
❸ shell脚本中括号()有什么用
三种作用,根据上下文决定作用。
在条件表达式中作用类似c语言作用,单独作用fork子shell,定义数组
❹ shell如何输出大括号
大括号在shell中有特殊的意义,输出一般需要转义,
使用转义字符\{ 或\} 就可以输出大括号
但有些地方不需要转义,如果转义会输出前面的转义字符。
是否需要转义可以通过测试进行判断。
❺ shell中的for为什么两个括号
for loop 的语法有下列两种:
(1)这个是shell的古典for的用法:
for varname [in word...]
do
...
done
举例:
for i in a b c
do
echo $i
done
(2) 这个语法类似C/C++的用法,还有((...))在shell里是算数运算用:
for (( [init_expression];[loop_condition];[loop_expression] ))
do
...
done
举例:
for ((i=0;i<5;i++))
do
echo $i
done
注意事项:这个for的用法只有在1988-11-16后的ksh才支援,所以有许多的Unix还不支援这个for的使用语法。例如HPUX或IBM的AIX。
❻ shell脚本主要有哪些
第一个shell脚本程序:
#!/bin/bash
# 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;echo "Hello, world!"
变量:
定义变量:
country="China"Number=100
注意: 1,变量名和等号之间不能有空格;
2,首个字符必须为字母(a-z,A-Z)。
3, 中间不能有空格,可以使用下划线(_)。
4, 不能使用标点符号。
5, 不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量:
只需要在一个定义过的变量前面加上美元符号$就可以了, 另外,对于变量的{} 是可以选择的, 它的目的为帮助解释器识别变量的边界.
country="China"echo $countryecho ${country}echo "I love my ${country}abcd!"
#这个需要有{}的;
重定义变量:直接把变量重新像开始定义的那样子赋值就可以了:
country="China"country="ribenguizi"
只读变量: 用 readonly 命令 可以把变量字义为只读变量。
readonly country="China"#或
country="China"readonly country
删除变量: 使用unset命令可以删除变量,但是不能删除只读的变量。用法:
unset variable_name
变量类型
运行shell时,会同时存在三种变量:
1) 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
特殊变量:
其中, 1. 取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。2. 如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
❼ 请教shell脚本中的方括号
shell脚本中的方括号,类似于[]这样的,相当于test命令。
也就是test命令的使用方法都适用 它。
❽ 关于shell脚本的几个问题--if和产量替换 if的语法,中括号后面有没有分号变量替换字符串
if [ $asd == "asdasd" ];then
fi
这是标准语法
❾ shell脚本中中括号不能用==号吗
能。先看我的,我再解释为什么你遇到这样的问题。
1)把下面的内容存为一个脚本文件,例如,我的a.sh如下(注意美元符$是系统提示符):
$ cat a.sh
#!/bin/bash
x=8
if [[ $x == 8 ]];then
echo 'yes'
else
echo 'no'
fi
2)给它加上执行权限:
$ chmod +x a.sh
3)看我的运行结果,说明中括号里面能用==号:
$ ./a.sh
yes
4)注意双等号的两边需要有空格,判别式与双中括号之间也需要空格。你可能没加空格,遇到了错误。把你的代码或者屏幕错误提示贴出来,大家就能更清晰地看到问题了。
供参考,谢谢!
❿ 请教会linux shell脚本的=~是什么意思
应该是正则表达式的字符判断
if [[ $i =~ ^[0-9]+$ ]] && echo 1
1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要。
2、~ +的意思的^[0-9]的范围里匹配一次以上+ $是匹配结束符。
touch -t "201109021200.00" tempfile
使用引号内的时间戳在当前目录建立一个叫tempfile的文件
find -name "*VIRTUALID*" -newer tempfile -exec cp {} /home/wbft/luo ;
(10)shell脚本中的括号扩展阅读:
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。
Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。