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

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
如何熟悉Base Shell的变量的间接引用?

1 前言 一个问题,一篇文章,一出故事。 笔者希望以一个变量名称去引用另一个变量,于是整理此文。 2 …

Bash
如何统计Linux打开文件前10进程?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台服务最近压力比较大,打开的文件数量不断地往 …

Bash
如何获取VSFTP昨天活跃和有效用户?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台老旧的FTP服务器,用户众多。笔者希望每天 …