Topwo博客
首页
博客
项目
解决shell脚本遍历带空格的文件/文件夹名
其他
2021-09-27
#### 由于shell数组默认拿空格当分隔符,所以通过临时改变数组分隔符的方式,可以解决遍历带空格的文件/文件夹名的问题。至于分隔符可以选择文件/文件夹名不可以使用的换行符\n,代码如下: ```shell #临时改变数组分隔符 OLD_IFS="${IFS}" IFS=$'\n'#这里特别注意,一定要这么写,有疑惑的可以看一下这篇文章:IFS的使用 for file in `ls`; do echo "${file}" done IFS="${OLD_IFS}"
阅读原文>>
shell中的特殊变量IFS的使用,以及其值为'\n'
其他
2021-09-27
在shell中使用到for循环时,是通过IFS同样也是来定义分隔符。如果要指定多个IFS字符,只要将他们在赋值行串起来就行。如下: ```shell IFS=$'\n':;" ``` 这个赋值会将换行符、冒号、分号和双引号作为字段分隔符。如何使用 IFS 字符解析数据没有任何限制。那么下面三个的区别是什么呢? ```shell IFS='\n' #将字符\和字符n作为IFS的换行符。 IFS="\n" #与上面一样。 IFS=$'\n' #正真的使用换行符做为字段分隔符。
阅读原文>>
shell如何使目录下的文件按文件大小排序
其他
2021-09-27
### 在目录下运行:`ls -l|sort -n -k5`
阅读原文>>
shell里读取Json数据
其他
2021-09-27
#### 推荐python方法,通过引用python方法来更方便的解析。 ### 一、json字符串 ```shell echo '{"hostname":"test","domainname":"example.com"}' | python -c 'import json,sys;obj=json.load(sys.stdin);print obj[0]["hostname"]' ``` ### 二、json文件 ```shell cat file.json | python -c "import json; import sys; obj=json.load(sys.stdin); print obj['province'][1]['name'].encode('utf-8')" ```
阅读原文>>
shell数组和字典
其他
2021-09-27
```shell #!/bin/bash echo "shell定义字典" #必须先声明 declare -A dic dic=([key1]="value1" [key2]="value2" [key3]="value3") #打印指定key的value echo ${dic["key1"]}
阅读原文>>
shell脚本常用语法——获得当前目录
其他
2021-09-27
### 1 获得shell脚本所在的绝对路径 ```shell CURRENT_DIR=$(cd $(dirname ${BASH_SOURCE}); pwd) ``` 或者 ```shell CURRENT_DIR=$(cd `dirname ${BASH_SOURCE}`; pwd) ``` 执行步骤解析: dirname $0: 取得当前执行的脚本文件所在的目录;
阅读原文>>
shell中的type命令
其他
2021-09-27
### type [-aftpP] name [name,...] #### `-a`打印name的所有可能情况,比如`type -a ls`,会打印ls is aliased to 'ls --color=auto'和ls is /bin/ls #### `-f`不会去查找function #### `-t`打印alias,keyword,function,built-in,file这5种类型 #### `-p`如果`type -t name`输出file,那么会打印name所在路径 #### `-P`不管`type -t name`是不是输出file,都会去搜索name所在路径,比如`type -P ls`,尽管`type -t ls`打印的是alias(因为alias的优先级高于file),但是仍然会搜索出ls所在的路径/bin/ls 如果type不加任何选项,直接加1个或者多个name,那么会依次打印这些name的类型。只有所有name的类型都能成功打印,type才返回成功,否则,只要任何一个name类型无法打印,那么就返回失败。
阅读原文>>
shell中#*,##*,#*,##*,% *,%% *的含义及用法
其他
2021-09-27
### 介绍下Shell中的${}、##和%%使用范例,假设定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 可以用${}分别替换得到不同的值: `${file#*/}` 删掉第一个/及其左边的字符串:dir1/dir2/dir3/my.file.txt `${file##*/}` 删掉最后一个/及其左边的字符串:my.file.txt `${file#*.}` 删掉第一个.搜索及其左边的字符串:file.txt `${file##*.}`
阅读原文>>
PHP发送POST请求的三种方式
PHP
2021-09-27
### PHP发送POST请求的三种方式 分别使用`curl ` `file_get_content` `fsocket `来实现post提交数据 ```php class Request{ public static function post($url, $post_data = '', $timeout = 5){//curl $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_POST, 1); if($post_data != ''){ curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); }
阅读原文>>
PHP中GET POST REQUEST区别
PHP
2021-09-27
### PHP中有$_REQUEST与$_POST、$_GET用于接受表单数据。 ### 一、$_REQUEST与$_POST、$_GET的区别和特点 $_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过POST和GET方法提交的所有数据都可以通过$_REQUEST数组获得。 ### 二、$_POST、$_GET的区别和特点 1. GET是从服务器上获取数据,POST是向服务器传送数据。 2. GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 3. 对于GET方式提交表单数据,服务器端用$_GET[‘name’]获取变量的值,对于POST方式提交表单数据,服务器端用$_POST[‘name’]获取提交的数据,当然,两者都可以通过$_REQUEST[‘name’]获得表单数据。对于REQUEST方式提交表单数据,服务器端用$_REQUEST[‘name’]获取变量的值,但这种方式很少用。 4. GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。但理论上,一般认为不能超过100KB。
阅读原文>>
首页
上一页
28
下一页
尾页
文章推荐
解决shell脚本遍历带空格的文件/文件夹名
2021-09-27
shell中的特殊变量IFS的使用,以及其值为'\n'
2021-09-27
shell如何使目录下的文件按文件大小排序
2021-09-27
shell里读取Json数据
2021-09-27
shell数组和字典
2021-09-27