我需要在bash
脚本中添加一个路径,但它可能会被执行多次:
export PATH=${OPENSHIFT_HOMEDIR}/app-root/runtime/bin/:${PATH}
Run Code Online (Sandbox Code Playgroud)
我不想一遍又一遍地添加该路径。如果还没有,我如何添加它$PATH
?
我知道这sed
是一个操作文本文件的命令。
从我的谷歌搜索来看,这似乎-i
意味着对文件本身执行操作,这是正确的吗?
怎么样'1d'
?
我需要创建给定目录的 tarball。但是,我需要确保也包含隐藏文件(例如以 开头的文件.
)。
以下命令会自动考虑隐藏文件吗?
tar -cvzf packed.tar.gz mydir
Run Code Online (Sandbox Code Playgroud)
如果没有,我如何确保包含隐藏文件?
我正在寻找多种语言的免费单词列表。
我知道 linux 发行版在/usr/share/dict
. 是否可以从某个地方下载这些而无需安装 linux?焦油球(或等效物)会很棒。谢谢。
可能的重复:在源代码中将重复项
保留在 $PATH 之外
我的一些脚本位于$HOME/mydir
. 不幸的是,如果这个目录不是PATH
.
我想创建一个小脚本,检查是否$HOME/mydir
是PATH
. 如果不是,PATH
则应使用它和 进行更新EXPORTED
。
我的问题是:我可以使用哪个命令来检查是否$HOME/mydir
属于PATH
? 谢谢。
解决方案
为了记录,我实现了以下内容:
echo "Before: $PATH"
echo $PATH | grep -q "$HOME/scripts"
if [ $? -eq 0 ]; then
PATH=$PATH:$HOME/scripts
export PATH
else
export PATH
fi
echo ""
echo "After: $PATH"
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 shell 脚本中创建一个 tar 球(我已启用set -x
),但出现以下错误:
+ cd /home5/mysite/public_html
+ TAR_DUMP=gypo_2012-02-18-03:51:15.tar.gz
+ echo 'Tar name: gypo_2012-02-18-03:51:15.tar.gz'
Tar name: gypo_2012-02-18-03:51:15.tar.gz
+ tar -cvzf gypo_2012-02-18-03:51:15.tar.gz gypo
...
tar: gypo_2012-02-18-03\:44\:04.tar.gz: Cannot open: Input/output error
tar: Error is not recoverable: exiting now
...
Run Code Online (Sandbox Code Playgroud)
脚本是:
NOW=$(date +"%Y-%m-%d-%T")
# TAR
cd $HOME/public_html
TAR_DUMP="gypo_$NOW.tar.gz"
echo "Tar name: $TAR_DUMP"
tar -cvzf $TAR_DUMP gypo
# mv -t $DEST $TAR_DUMP
Run Code Online (Sandbox Code Playgroud)
为什么 tar 会产生此错误,我该如何解决?
另一个问题的答案建议在脚本中使用以下代码:
case ":$PATH:" in
*:$HOME/mydir:*) echo it is in the path;;
*) echo not there ;;
esac
Run Code Online (Sandbox Code Playgroud)
这段代码的目的是检查是否$HOME/mydir
in $PATH
,但是this和this 中的示例表明精确的“匹配”而不是“包含”。
“案例”在这里如何运作?谢谢。