繁体   English   中英

我如何将命令输出分配为变量

[英]how do i assigne out put of command as variable

嗨,我是脚本新手。 请为我指出错误的方式道歉。

我正在尝试开发一个脚本,该脚本采用给定路径的备份。 下面是我的脚本。 我面临的问题是我试图将变量“ s”分配给命令“ mkdir”,但它不起作用。 请帮助我,我该如何纠正这种语法?

#!/bin/bash
# to back up the given folder "

i="`date | awk '{ print $1$2$4}'`"
echo " please enter the full path of folder you want to back up"
read foldern

echo " $foldern is of `du -sh $foldern`. Do you want to back up this folder"
echo "yes / no"
read ans

if [ $ans = yes ]
 then
  echo " enter the back up folder name"
  read  bpn
  s=$(mkdir $bpn$i)   # here I am trying to assign a variable "s" for out put of mkdir but dosent work Please help me #
echo $s
 cp -R  "$foldern"  "$s"
 else
   echo "no back up is taken"
fi

mkdir不会创建输出或打印其创建的目录。 手动创建字符串:

s=$bpn$i
mkdir -- "$s"
echo "$s"

--是可选的选项-参数分隔符,因此,以-开头的文件不会被误解为mkdir的错误选项。

如果您不希望mkdir在目录已存在的情况下显示错误,则添加-p也可能会有所帮助。

mkdir -p -- "$s"

建议:

#!/bin/bash

# To back up the given folder.

date=$(date | awk '{ print $1$2$4}')  ## Consider date=$(date '+%F-%T')

read -p "Please enter the full path of folder you want to back up: " folder_name

size=$(du -sh "$folder_name")
read -p "$folder_name is of $size. Do you want to back up this folder (Yes/No)? "

if [[ $ans == [yY][eE][sS] ]]; then
    read -p "Enter the back up folder name: " backup_name
    backup_name+=$date
    echo "$backup_name"
    mkdir -p "$backup_name" && cp -R "$folder_name" "$backup_name"
else
    echo "No back up is taken."
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM