标签: bash

为什么设置变量名会给我“找不到命令”?

我想输入一个数字,然后加税并减去折扣。

我在尝试:

#!/bin/sh
...
final_amount = $(echo "$purchase_amount+($purchase_amount * $tax)-($purchase_amount * $discount)" |bc -l)
...
Run Code Online (Sandbox Code Playgroud)

但我得到:

$ . 3_purchase_amounts.sh 
...
final_amount: command not found
...
Run Code Online (Sandbox Code Playgroud)

shell bash shell-script arithmetic variable

-2
推荐指数
1
解决办法
2867
查看次数

将文件夹从硬盘的根目录移动到当前目录

我想弄清楚如何将位于我磁盘根目录中的文件夹(你称之为什么,home?)移动到子目录。我不是 cd 到根目录(再次不确定术语)。

当我说 root 时,这就是我认为的意思。

在此处输入图片说明

那么,在谈到文件系统和 UNIX 时,我的磁盘名称应该叫“Macintosh”吗?

因此,例如,我目前正在使用 cd/user/[myprofilename]/code并且我想将位于根目录的code文件移动到文件夹中。或者,也许我没有 cd 到该code文件夹,我在某个不相关的文件夹中,但仍想将该themes文件夹移动到该文件夹内code

换句话说,如果我没有 cd 到与themes文件夹(根)相同的目录中,如何轻松地将它从您 cd 的任何位置移动到当前?

示例我试图做这样的事情,但你它不起作用:

$ mv ../themes .
Run Code Online (Sandbox Code Playgroud)

我也试过:

$ mv ~/themes .
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新

我刚试过/themes .,它说权限被拒绝……但这似乎想重命名/themes./themes,至少消息是这样说的?我不想重命名我想移动它的文件夹,所以我似乎仍然以错误的方式处理它?

在此处输入图片说明

shell bash permissions directory filenames

-2
推荐指数
1
解决办法
1208
查看次数

为什么`LD_LIBRARY_PATH` 不是 Bash 的内置环境变量?

来自GCC 简介

设置加载路径的最简单方法是通过环境变量LD_LIBRARY_PATH。例如,下面的命令设置到负载路径/opt/gdbm-1.8.3/lib,使得libgdbm.so可以发现:

$ LD_LIBRARY_PATH=/opt/gdbm-1.8.3/lib
$ export LD_LIBRARY_PATH
$ ./a.out
Storing key-value pair... done.
Run Code Online (Sandbox Code Playgroud)

不是LD_LIBRARY_PATHBash 的内置环境变量是否正确?否则,就没有必要了export

Bash shell 用于PATH定位外部程序,PATH是 Bash 的内置环境变量。

Bash shell 用来LD_LIBRARY_PATH定位程序运行所依赖的共享库,那么为什么不是LD_LIBRARY_PATHBash 的内置环境变量呢?

bash environment-variables

-2
推荐指数
1
解决办法
700
查看次数

如何在文本中添加行号?

我的文字是:

Hi
Bye
Nope
Sorry
Cya
Chill
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到:

[1] Hi
[2] Bye
[3] Nope
Run Code Online (Sandbox Code Playgroud)

等等等等?

linux bash sed awk shell-script

-2
推荐指数
1
解决办法
2793
查看次数

Bash 脚本 - 测试文件是否存在

如何创建一个脚本来检查提供的文件是否存在,如果不存在则创建错误消息。我有以下代码,但它不起作用:

#!/bin/bash
echo "enter file name:"
read source
file= $source
if [ -f "$file" ] && find "$file" | grep -q .
then 
    echo "the file exists."
else
    echo "the file does not exist."
fi
Run Code Online (Sandbox Code Playgroud)

bash

-2
推荐指数
1
解决办法
6565
查看次数

用空格分隔的 bash 脚本命令

说我有一个 bash 脚本/home/me/test/sh

#!/bin/bash

# cmd                              # here is the output of the cmd
pwd echo 'aaa'                     # /home/me
val=pwd echo 'aaa'                 # aaa
val=pwd echo 'aaa'$val             # aaa

val=pwd echo 'aaa' && echo $val    # aaa <and an empty line>
Run Code Online (Sandbox Code Playgroud)

我不太明白这些由空格分隔的 bash 代码是如何工作的。

顺便说一句,我提出这个问题是因为我刚刚安装了 ROS 并setup.sh生成了一个名为 bash 的脚本,我正在阅读这个脚本。有一行如下:

CATKIN_SHELL=bash /opt/ros/kinetic/_setup_util.py >> file.log
Run Code Online (Sandbox Code Playgroud)

bash shell-script

-2
推荐指数
1
解决办法
732
查看次数

bash if 语句帮助

我目前正在使用 2 个脚本。1个脚本按年份过滤文件。第二个脚本位于年子文件夹中,按月 # (01-12) 过滤。

有什么比我下面的更好的吗?

所有文件都在 1 个目录中:

来源:./tape_backup/sync1/*(140 万个文件)目标:./tape_backup/<1990 - 2019>/<01-12>/(按年/月组织)

文件名的语法:A1000_T195_R256393_D120498 094600

_D = 不重要

D = 日期开始

1-2 = 月

3-4 = 天(不重要)

5-6 = 年

7-* = 时间戳(不重要)

因此,为什么我做整个D????98

读起来像这样的东西:

for f in ./sync1 do
(检查月份和年份,然后将其 mv 放入月份和年份文件夹 /)
完成

我在 Cygwin 和服务器 2012 r2

#C:/cygwin/bin/bash
for filename in ./* ; do
 if [[ $filename == *D??90 ]] ; then
      mv $filename /cygdrive/d/RAID5/RAID200/invoices/1/1990/

 elif [[ $filename == *D??91 ]] ; then
      mv …
Run Code Online (Sandbox Code Playgroud)

shell bash for

-2
推荐指数
1
解决办法
95
查看次数

如何打印第n行号之后的数据

我正在尝试获取第 n:th 行号之后的数据。

我有一个 1500 行的文件,但我想打印 750 行后的数据。

我尝试headtail,但无法得到我想要的。

linux shell bash

-2
推荐指数
1
解决办法
2353
查看次数

命令“清除”和“重置”有什么区别?

命令“clear”和“reset”有什么区别?

(整个问题都在标题中,但网站拒绝让我发表没有正文的帖子,因此重复)

bash

-2
推荐指数
1
解决办法
2734
查看次数

bash 中的 $PS1 与 $PROMPT_COMMAND 比较?

我想自定义 shell 的提示符。$PS1和之间有什么区别$PROMPT_COMMAND,我应该使用什么变量?很高兴知道一些历史约定(过去的 shell/posix)来找出更兼容的约定。

shell bash prompt

-2
推荐指数
1
解决办法
942
查看次数