如何在shell脚本中断开字符串

4 linux shell

我有以下格式的数据库名称

username_databasename
Run Code Online (Sandbox Code Playgroud)

现在我想将单独的数据库备份放在用户名目录中,例如

/backups/username/backup
Run Code Online (Sandbox Code Playgroud)

如何从该字符串中获取用户名

我还希望如果字符串不包含下划线 (_) 那么备份应该转到

/backups/others/backup
Run Code Online (Sandbox Code Playgroud)

cod*_*ict 6

你可以做:

username=others
if echo $name | grep '_'; then
 username=$(echo $name | cut -d'_' -f 1)
fi
Run Code Online (Sandbox Code Playgroud)


Jan*_*der 5

乔纳森莱夫勒有一个很好的,干净的答案。

如果您出于某种原因不想使用 sed,则可以将$(echo | sed)位替换为:

username="${fullname%_*}"
Run Code Online (Sandbox Code Playgroud)

它做同样的事情。