如何实现文件夹路径转纯数字符串?

Bash

1 前言

一个问题,一篇文章,一出故事。
由于由于需要设置某目录的配额,配额要求为每个目录指定一个项目的ID,于是笔者想把项目的路径当成一串字符串直接转换为一串数字作为项目ID,于是整理此文。

2 最佳实践

2.1 实现字符转ASCII值

vim ~/scripts/test.sh

创建如下脚本,

#!/bin/bash

read -p "请输入一个字符: " char
decimal=$(printf "%d" "'${char}")
echo "${char} 的ASCII值为 ${decimal}"

然后使用如下命令测试,

sh ~/scripts/test.sh

可见如下交互过程,

请输入一个字符: a
a 的ASCII值为 97

2.2 实现字符串转ASCII值

vim ~/scripts/test.sh

创建如下脚本,

#!/bin/bash

read -p "请输入一个字符串: " inputString
for (( i=0; i<${#inputString}; i++ ))
do
  asciiValue=$(printf "%d" "'${inputString:$i:1}")
  echo "${inputString:$i:1} 的ASCII值为 ${asciiValue}"
done

然后使用如下命令测试,

sh ~/scripts/test.sh

可见如下交互过程,

请输入一个字符串: abc
a 的ASCII值为 97
b 的ASCII值为 98
c 的ASCII值为 99

2.3 实现文件夹路径转纯数字符串

vim ~/scripts/test.sh

创建如下脚本,

#!/bin/bash

read -p "请输入一个路径: " inputString
outputString=""
for (( i=0; i<${#inputString}; i++ ))
do
  asciiValue=$(printf "%d" "'${inputString:$i:1}")
  outputString="$outputString$asciiValue"
done
echo "$outputString"

然后使用如下命令测试,

sh ~/scripts/test.sh

可见如下交互过程,

请输入一个路径: /data/ftp/ftpUser01
4710097116974710211611247102116112851151011144849
没有评论

发表回复

Bash
如何用Tigase监控postfix smtp服务?

1 前言 一个问题,一篇文章,一出故事。 笔者生产中的smtp服务器最近因为负载均衡器的路由故障而导 …

Bash
如何用Tigase监控Elasticsearch集群?

1 前言 一个问题,一篇文章,一出故事。 笔者生产中有一套Elasticsearch集群,笔者为了能 …

Bash
如何用Base Shell获取ES集群状态?

1 前言 一个问题,一篇文章,一出故事。 笔者想要通过Base Shell获取Elasticsear …