This code checks to make sure a directory is hidden and if not hides it. Then if hidden it will prompt for password and if password matches it will un-hide it. There is also an argument to open un-hidden directory too.
#! /bin/bash
DIR="path/untitled"
DIR2="path/.untitled"
password="Z2FsdGVkX18vy4f4QRB3qnb5vIWR0x+tlZmdAmPxX8Y="
input=""
result=""
basic()
{
if [ -d "$DIR" ]
then
clear
mv $DIR $DIR2
elif [ -d "$DIR2" ]
then
echo -n ": "
read -s input
result=$(echo "$password"| openssl enc -aes-128-cbc -a -d -salt -pass pass:wtf)
if [ "$result" = "$input" ]
then
clear
mv $DIR2 $DIR
else
clear
fi
else
:
fi
exit
}
opendir()
{
if [ -d "$DIR" ]
then
clear
mv $DIR $DIR2
elif [ -d "$DIR2" ]
then
echo -n ": "
read -s input
result=$(echo "$password"| openssl enc -aes-128-cbc -a -d -salt -pass pass:wtf)
if [ "$result" = "$input" ]
then
clear
mv $DIR2 $DIR
open $DIR
else
clear
fi
else
:
fi
exit
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if [ $# -eq 0 ]
then
basic
elif [ $# -eq 1 ]
then
if [ "1ドル" = "-o" ]
then
opendir
else
:
fi
fi
clear
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of File ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 Answer 1
Avoid echo -n
Avoid using any flags of echo
, like this, as it's not portable:
echo -n ": "
This is more portable, and produces the same output:
printf ": "
Get rid of empty statements
These empty else
statements are pointless,
I suggest to remove them:
else :
Simplify
This can be simplified:
if [ "$result" = "$input" ] then clear mv $DIR2 $DIR else clear fi
Since in both branches of the if-else you clear
, this is the same:
clear
if [ "$result" = "$input" ]
then
mv $DIR2 $DIR
fi
Quote variables in paths
Typically you should double-quote variables, especially when used as paths. So instead of this:
mv $DIR2 $DIR
This is recommended and safer:
mv "$DIR2" "$DIR"
Avoid duplicated code
The code in opendir
and basic
is almost the same.
The only difference I see is the content of the "$result" = "$input"
conditions.
Consider using a single function with a flag to determine the behavior inside the main conditional.
-
\$\begingroup\$ Thank you for the suggestion. I updated my code to reflect them. When you get time please take a look at the new code. \$\endgroup\$J. Doe– J. Doe2015年09月02日 15:55:09 +00:00Commented Sep 2, 2015 at 15:55