小编Jér*_*nge的帖子

如果不在 $PATH 中,则将路径添加到 $PATH

我需要在bash脚本中添加一个路径,但它可能会被执行多次:

export PATH=${OPENSHIFT_HOMEDIR}/app-root/runtime/bin/:${PATH}
Run Code Online (Sandbox Code Playgroud)

我不想一遍又一遍地添加该路径。如果还没有,我如何添加它$PATH

scripting bash path shell-script

35
推荐指数
2
解决办法
2万
查看次数

sed -i '1d' 有什么作用?

我知道这sed是一个操作文本文件的命令。

从我的谷歌搜索来看,这似乎-i意味着对文件本身执行操作,这是正确的吗?

怎么样'1d'

sed

35
推荐指数
3
解决办法
6万
查看次数

tar -cvzfpacked.tar.gz mydir 会考虑隐藏文件吗?

我需要创建给定目录的 tarball。但是,我需要确保也包含隐藏文件(例如以 开头的文件.)。

以下命令会自动考虑隐藏文件吗?

tar -cvzf packed.tar.gz mydir
Run Code Online (Sandbox Code Playgroud)

如果没有,我如何确保包含隐藏文件?

tar directory gzip

20
推荐指数
1
解决办法
4万
查看次数

我在哪里可以下载 /usr/dict/ 包?

我正在寻找多种语言的免费单词列表。

我知道 linux 发行版在/usr/share/dict. 是否可以从某个地方下载这些而无需安装 linux?焦油球(或等效物)会很棒。谢谢。

package-management

20
推荐指数
1
解决办法
2万
查看次数

检查 PATH 是否包含 $HOME/mydir 并添加它如果没有(全部在脚本中)

可能的重复:在源代码中将重复项
保留在 $PATH 之外

我的一些脚本位于$HOME/mydir. 不幸的是,如果这个目录不是PATH.

我想创建一个小脚本,检查是否$HOME/mydirPATH. 如果不是,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)

path string shell-script environment-variables

12
推荐指数
2
解决办法
1万
查看次数

tar 命令在 shell 脚本中生成错误

我正在尝试在 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 会产生此错误,我该如何解决?

tar shell-script filenames

7
推荐指数
1
解决办法
6839
查看次数

有人可以澄清:'case ":$PATH:" in' 在脚本中吗?

另一个问题的答案建议在脚本中使用以下代码:

case ":$PATH:" in
  *:$HOME/mydir:*) echo it is in the path;;
  *) echo not there ;;
esac
Run Code Online (Sandbox Code Playgroud)

这段代码的目的是检查是否$HOME/mydirin $PATH,但是thisthis 中的示例表明精确的“匹配”而不是“包含”。

“案例”在这里如何运作?谢谢。

shell-script

1
推荐指数
1
解决办法
270
查看次数