验证复制是否成功
Verifying that a copy succeeded
我想写一个脚本来验证复制是否成功。
这是我拥有的:
#!/bin/sh
cp home/testing/present.txt home/testing/future.txt
echo "Copy Code: $? - Successful"
if [ $? != 0 ]; then
echo "Copy Code: $? - Unsuccessful"
fi
"if" 语句没有被初始化。如何解决这个问题?
谢谢你的时间。
$?
指的是最后一条命令:
#!/bin/sh
cp home/testing/present.txt home/testing/future.txt
echo "Copy Code: $? - Successful" # last command: cp
if [ $? != 0 ]; then # last command: echo
echo "Copy Code: $? - Unsuccessful" # last command: [
fi
如果您想重复使用特定命令的状态,只需将结果保存在另一个变量中:
#!/bin/sh
cp home/testing/present.txt home/testing/future.txt
status=$?
echo "Copy Code: $status - Successful"
if [ $status != 0 ]; then
echo "Copy Code: $status - Unsuccessful"
fi
但是,更好的方法是首先简单地测试 cp
命令:
if cp home/testing/present.txt home/testing/future.txt
then
echo "Success"
else
echo "Failure, exit status $?"
fi
简化,简化,再简化:
#!/bin/sh
if cp home/testing/present.txt home/testing/future.txt; then
echo "Copy Code: $? - Successful"
else
echo "Copy Code: $? - Unsuccessful"
fi
如果要测试命令是否成功,用if
语句测试状态。
记住$?
是最后执行命令的退出状态。它就像一个极不稳定的全局变量(在 C 或 C++ 中)。
在您的代码中,您 运行 echo
破坏了 cp
命令中 $?
中的值。如果您需要显式捕获 $?
,请在您需要捕获其状态的命令之后显式并立即执行此操作:
cp home/testing/present.txt home/testing/future.txt
cp_status=$?
然后在下面的代码中测试$cp_status
。
我想写一个脚本来验证复制是否成功。 这是我拥有的:
#!/bin/sh
cp home/testing/present.txt home/testing/future.txt
echo "Copy Code: $? - Successful"
if [ $? != 0 ]; then
echo "Copy Code: $? - Unsuccessful"
fi
"if" 语句没有被初始化。如何解决这个问题? 谢谢你的时间。
$?
指的是最后一条命令:
#!/bin/sh
cp home/testing/present.txt home/testing/future.txt
echo "Copy Code: $? - Successful" # last command: cp
if [ $? != 0 ]; then # last command: echo
echo "Copy Code: $? - Unsuccessful" # last command: [
fi
如果您想重复使用特定命令的状态,只需将结果保存在另一个变量中:
#!/bin/sh
cp home/testing/present.txt home/testing/future.txt
status=$?
echo "Copy Code: $status - Successful"
if [ $status != 0 ]; then
echo "Copy Code: $status - Unsuccessful"
fi
但是,更好的方法是首先简单地测试 cp
命令:
if cp home/testing/present.txt home/testing/future.txt
then
echo "Success"
else
echo "Failure, exit status $?"
fi
简化,简化,再简化:
#!/bin/sh
if cp home/testing/present.txt home/testing/future.txt; then
echo "Copy Code: $? - Successful"
else
echo "Copy Code: $? - Unsuccessful"
fi
如果要测试命令是否成功,用if
语句测试状态。
记住$?
是最后执行命令的退出状态。它就像一个极不稳定的全局变量(在 C 或 C++ 中)。
在您的代码中,您 运行 echo
破坏了 cp
命令中 $?
中的值。如果您需要显式捕获 $?
,请在您需要捕获其状态的命令之后显式并立即执行此操作:
cp home/testing/present.txt home/testing/future.txt
cp_status=$?
然后在下面的代码中测试$cp_status
。